Media > AI活用ユースケース > 物流 > 医療材料の使用記録と手術の予定から、部署ごとの定数の補充と中央在庫の発注の案を毎朝出す

医療材料の使用記録と手術の予定から、部署ごとの定数の補充と中央在庫の発注の案を毎朝出す

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

部署で使った医療材料の記録と、手術・検査の予定から、部署ごとの翌日の使用量を予測します。定数までの補充の案と中央在庫の発注の案を毎朝出し、担当者は確認と例外の判断に集中できます。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Make/n8n/Power Automate
対象業界
介護/医療
対象部門
物流/購買
対象業務
台帳・マスタ管理/集計・分析
主な課題
データ分析に時間がかかる/属人化している/期限・対応漏れが起きる
AIで行う処理
予測
主な効果
属人化解消/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
本格構成
費用感
ノーコード連携(中)
人間の確認
条件付き
現在工数
80h/月
AI導入後
20h/月
想定削減
75%
年間削減
720h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 朝、物品管理システムから前日分の部署別・品目別の使用数を書き出す
  2. 定数表と突き合わせ、定数まで戻すための補充数を部署ごとに出す
  3. 手術室・内視鏡室・透析室は、翌日の予定表を開き、件数と術式から追加で要る材料を見積もる
  4. 部署の看護師長からのメール(「来週から化学療法の患者が増える」など)を読み、補充数を手で上乗せする
  5. 補充リストを印刷して部署を回る
  6. 中央倉庫の在庫と、その日の払出の見込みを見て、業者への発注数を決める
導入後(After)
  1. 自動早朝、物品管理システムが前日分の使用記録・中央在庫・発注残をCSVで書き出す(既存の定時出力)
  2. 自動決まった時刻にワークフローが動き、CSVと手術予定・検査予定を読み込む
  3. 自動部署からの連絡メールを生成AIが読み、「予定の変化」を決まった形で抜き出して、確認待ちの一覧に入れる
  4. 人物品管理係が、抜き出された予定の変化を確かめ、採用するものに印を付ける(前日の夕方に済ませる運用も可)
  5. 自動曜日ごとの実績、予定、採用された予定の変化から、部署×品目ごとの使用量を予測する
  6. 自動予測と定数から補充の案を、中央在庫と発注残から発注の案を作る
  7. 自動予測が定数を超える、在庫が発注点を割る、といった注意点を一覧の先頭に並べる
  8. 人物品管理係が注意点の付いた行を中心に確かめ、補充リストを確定して部署を回る
  9. 人発注の案を確かめ、物品管理システムから業者へ発注する
  10. 自動月に1回、部署ごとの定数の見直しの候補と、その理由の説明文を作る
各工程の詳しい説明を読む
  1. 朝、物品管理システムから前日分の部署別・品目別の使用数を書き出す
  2. 定数表と突き合わせ、定数まで戻すための補充数を部署ごとに出す
  3. 手術室・内視鏡室・透析室は、翌日の予定表を開き、件数と術式から追加で要る材料を見積もる
  4. 部署の看護師長からのメール(「来週から化学療法の患者が増える」など)を読み、補充数を手で上乗せする
  5. 補充リストを印刷して部署を回る
  6. 中央倉庫の在庫と、その日の払出の見込みを見て、業者への発注数を決める

(a)毎朝の集計に時間がかかる。 20部署分の書き出し、突き合わせ、上乗せを1時間以上かけて行います。補充に回る時刻が遅れると、部署で「無いので隣の病棟に借りに行く」ことが起きます。

(b)予定による増減の読みが、担当者の経験に頼っている。 「この術式ならこの縫合糸を3本」「月曜は外来の処置が多い」といった読みは、長く担当している1名の頭の中にあります。その担当が休んだ日に、手術室の材料が足りなくなったことがあります。

(c)定数が実態と合っていない。 定数は部署の開設時や診療科の再編時に決めたまま、見直しの機会がありません。使わない材料が棚で期限を迎える一方、毎日のように欠品しかける材料もあります。

(d)連絡がメールに散らばる。 部署からの「来週から増える」「この材料は使わなくなった」という連絡は、看護師長ごとの書き方でメールに届きます。読んだ担当者が覚えていれば反映され、忘れれば反映されません。

  1. 【自動】 早朝、物品管理システムが前日分の使用記録・中央在庫・発注残をCSVで書き出す(既存の定時出力)
  2. 【自動】 決まった時刻にワークフローが動き、CSVと手術予定・検査予定を読み込む
  3. 【自動】 部署からの連絡メールを生成AIが読み、「予定の変化」を決まった形で抜き出して、確認待ちの一覧に入れる
  4. 【人】 物品管理係が、抜き出された予定の変化を確かめ、採用するものに印を付ける(前日の夕方に済ませる運用も可)
  5. 【自動】 曜日ごとの実績、予定、採用された予定の変化から、部署×品目ごとの使用量を予測する
  6. 【自動】 予測と定数から補充の案を、中央在庫と発注残から発注の案を作る
  7. 【自動】 予測が定数を超える、在庫が発注点を割る、といった注意点を一覧の先頭に並べる
  8. 【人】 物品管理係が注意点の付いた行を中心に確かめ、補充リストを確定して部署を回る
  9. 【人】 発注の案を確かめ、物品管理システムから業者へ発注する
  10. 【自動】 月に1回、部署ごとの定数の見直しの候補と、その理由の説明文を作る

8番目で人が見るのは、注意点の付いた行です。 定数どおりに戻すだけの行は一覧で流し見て、予測が定数を超える品目、急に使用が増えた品目、期限の近い在庫がある品目に時間を使います。

4番目で、予定の変化を人が採用してから予測に入れるのも意図してのことです。 生成AIがメールを読み違えても、その読み違いが補充の数に入る前に止まります。

02今回想定するシステム構成

構成図
物品管理システム(使用記録・中央在庫・発注残)── 早朝にCSVを定時出力
手術部門システム(翌日以降の手術予定)── CSVを定時出力
部署からの連絡(メール)
   ▼【トリガー】平日の決まった時刻(Schedule Trigger)
n8n(自院のサーバーで運用)
   ├──▶ ファイルの読み込み(Read/Write Files from Disk → Extract From File)
   ├──▶ Claude API ── 連絡メールから「予定の変化」を抜き出す
   │         ▼【人が採用するものを選ぶ】
   ▼
n8n(Code ノード)── 予測と補充・発注の計算
   │   曜日別の実績 + 術式別の標準材料 × 予定件数 + 採用された予定の変化
   ▼
補充リスト・発注の案・注意点の一覧(CSVと表)
   ▼
【物品管理係が確認】──▶ 補充 / 物品管理システムから発注
   ▼(月1回)
Claude API ── 定数の見直しの候補の説明文
役割想定する製品代替候補
ワークフローn8n(自院のサーバーで運用)Make、Power Automate
集計n8n の Code ノード(JavaScript。予測と補充・発注の計算)Microsoft Excel
生成AIClaude API(予定の変化の抽出、定数の見直しの説明文)OpenAI API、Gemini API
保管院内のファイルサーバー(CSVの受け渡しと出力の保存)Microsoft SharePoint

物品管理システムと手術部門システムには書き込みません。 どちらも、すでにある定時のCSV出力を使います。発注の確定は、物品管理係が物品管理システムの画面で行います。

n8n を自院のサーバーで動かすのは、ファイルを読むためです。 Read/Write Files from Disk ノードは n8n が動いているマシンのファイルを読み書きするノードで、公式の説明では n8n Cloud では大きな制限があるとされています。院内のファイルサーバーに出力されるCSVを読むには、自院で動かす構成が素直です。

予測の計算は Code ノードで行います。 Code ノードは JavaScript と Python に対応し、既定では入力の全件に対して1回だけ実行するモードで動きます。部署×品目の全件を一度に受け取り、まとめて計算するのにこのモードが合います。ただし Code ノードからはファイルの読み書きもHTTPの呼び出しもできないとされているので、読み込みと保存は専用のノードで行います。

使用記録がデータとして残ることが前提です。 医薬品・医療機器等の容器等へのバーコード又は二次元コードの表示は、改正された医薬品医療機器等法により令和4年12月1日から義務化されています。包装のバーコードを部署で読み取る運用にすれば、使用記録を品目の単位で取れます。

03どうやって実装するのか

Step1

処理の起点を決める

平日の朝5時30分に動かします。 物品管理システムの定時出力が5時に終わり、物品管理係が7時30分に出勤して補充リストを見る、という順に合わせます。n8n の Schedule Trigger ノードは、秒・分・時間・日・週・月の間隔か、cron 式で起動の時刻を決められます。平日だけ動かすなら、週の間隔で月曜から金曜を選びます。

時刻の基準に注意してください。 Schedule Trigger は、ワークフローのタイムゾーンが設定されていればそれを、無ければ n8n のインスタンスのタイムゾーンを使います。 公式の説明では、自分で運用するインスタンスの既定は America/New York です。ワークフローのタイムゾーンを Asia/Tokyo に設定しないと、朝5時30分のつもりが日本時間の夜に動きます。

もう一つ、ワークフローを保存して公開(publish)しないとスケジュールは動きません。 編集画面で試しに動かして満足し、公開を忘れる、という失敗が起きやすいところです。

予定の変化の抽出は、別のワークフローに分けます。 こちらは平日の15時に動かし、その日に届いた連絡メールを読みます。夕方のうちに人が採用を済ませておけば、翌朝の予測に入ります。

Step2

入力データを集める

データ中身取得元
使用記録日付、部署、品目コード、使用数(バーコードの読み取りと定数カードの回収)物品管理システムの定時CSV
定数表部署×品目ごとの定数、補充の間隔、最小の包装単位物品管理システム(または表計算の定数表)
中央在庫と発注残品目ごとの在庫数、期限の近いロットの数、発注済みで未入荷の数物品管理システムの定時CSV
品目マスタ品目コード、業者、発注の単位、納品までの日数、発注点物品管理システム
手術・検査の予定日付、部屋、術式のコード、件数手術部門システムの定時CSV
術式別の標準材料術式ごとに通常使う材料と数手術室と物品管理係が作る表
部署からの連絡看護師長などからのメール本文物品管理係の共有メールボックス

質を決めるのは、術式別の標準材料の表です。 手術室の使用量は、翌日の予定件数と術式でほぼ決まります。この表が「長く担当している1名の頭の中」を書き出したものになります。最初から全術式をそろえる必要はなく、件数の多い上位30術式から作ります。

補充の間隔は部署ごとに持ちます。 平日毎日の部署、週3回の部署、手術室のように前日の夕方にそろえる部署があります。金曜の補充は翌営業日までの3日分を見込むので、予測を「補充の間隔の日数分」で合計します。

使用記録の粒度も確かめてください。 定数カードの回収だけで記録している部署は、カードを外し忘れると使用数が実際より少なく出ます。 予測の元になるので、バーコードの読み取りに寄せていくほど予測が安定します。

Step3

データの取得方法を決める

ファイルは Read/Write Files from Disk ノードで読みます。 ファイルの指定にはワイルドカードが使えるので、/data/spd/usage_*.csv のように日付入りのファイル名をまとめて指定できます。

読めるフォルダには制限があります。 自分で運用するインスタンスでは、N8N_RESTRICT_FILE_ACCESS_TO という環境変数で読めるパスが決まり、n8n 2.0 からは既定が ~/.n8n-files です。院内のファイルサーバーの出力先を読むには、このパスを出力先に合わせて設定するか、Docker で動かすならホストのフォルダをボリュームとしてマウントします。

読んだCSVは Extract From File ノードでJSONに変えます。 このノードはCSV、XLS、XLSXなどに対応し、ヘッダー行の設定を外すと、列名ではなく番号付きの行として出力されるとされています。物品管理システムのCSVは1行目が列名なので、ヘッダー行を有効にします。

取るものノード後段での使い方
使用記録(直近8週分)Read/Write Files from Disk → Extract From File曜日別の使用の実績
定数表・品目マスタ同上補充数と発注数の計算
中央在庫・発注残同上発注の案と期限の近い在庫の注意点
手術・検査の予定同上術式別の標準材料との掛け合わせ
連絡メールメールの受信ノード(共有メールボックス)予定の変化の抽出
Step4

AIへ渡す前に整形する

  1. ファイルがそろっているかの確認 … 5つのCSVのどれかが無い、または0行なら、予測を出さずに止めて知らせます
  2. 品目コードの突き合わせ … 使用記録にあって品目マスタに無い品目は、新しく採用された材料か、コードの誤りです。別の一覧に出します
  3. 休日の扱い … 前日が休日の場合、使用記録は休日分を含めて集計し、曜日別の実績には休日を平日と混ぜません
  4. 外れ値の印 … 災害訓練や大量の廃棄など、普段と違う日の記録には、物品管理係が印を付けられる列を持たせ、印の付いた日は実績から除きます
  5. 包装単位への丸め … 補充と発注は最小の包装単位でしかできないので、計算の最後に切り上げます

1番目を省かないでください。 手術予定のCSVが出ていない日に予測を出すと、手術室の補充が曜日の平均だけになり、翌日の大きな手術の材料が足りません。 出さないほうが、担当者は手で確かめます。

Step5

AIに処理させる

予測と補充・発注の計算は、Code ノードの計算で行います。生成AIは使いません。

計算方法
部署×品目の基本の予測直近8週の同じ曜日の使用数の平均。外れ値の印の日は除く
予定による上乗せ翌日(金曜は翌営業日まで)の予定件数 × 術式別の標準材料の数
予定の変化の反映人が採用した予定の変化(例:化学療法の患者が1日2名増える)を、決まった係数で加える
補充の案定数 − 現在の推定在庫。ただし予測が定数を超えるなら「定数不足の恐れ」の印
発注の案中央在庫 − 翌日以降の払出の見込み が発注点を割るなら、発注の単位で切り上げた数
定数の見直しの候補(月1回)直近8週の使用数のばらつきと補充の間隔から計算した目安と、現在の定数の差が大きい品目

生成AIにさせるのは、次の2つだけです。

させること入力出力
予定の変化の抽出部署からの連絡メール部署、対象の品目か診療の種類、始まる日、終わる日、増減の方向、書かれた数
定数の見直しの説明文計算済みの見直しの候補(品目、現在の定数、目安、使用の実績)部署の責任者に送る説明文の下書き

説明文の下書きでは、計算済みの数を言い換えずに使わせます。 「目安は12、現在の定数は20、直近8週で1日に10を超えた日は無い」という事実を並べ、定数を下げるべきだという結論は書かせません。 決めるのは部署の責任者です。

させないこと理由
補充数・発注数を決めること同じ入力で同じ数にならない。数の根拠を説明できなくなる
メールに書かれていない数を推すこと「増える」とだけ書かれていれば、数は空にする
定数を決めること部署の責任者と物品管理係が決める
採用されていない予定の変化を予測に入れること人の採用を経てから入れる

1行目がいちばん大事です。 生成AIに「明日の補充数を出して」と頼むと、それらしい数が返ってきます。しかし、なぜその数なのかを誰も説明できず、翌日同じ条件で頼むと違う数が返ることがあります。 補充と発注は、足りなければ医療が止まり、多すぎれば期限切れで捨てる仕事です。数は計算で出し、生成AIは言葉の側だけを受け持ちます。

Step6

指示内容を固定する

予定の変化の抽出に使う指示です。

あなたは病院の物品管理係の補助です。
部署から届いた連絡のメール本文を読み、医療材料の使用量に影響する
「予定の変化」だけを抜き出してください。推測で埋めないでください。

【抜き出すもの】
- department ... 連絡してきた部署
- target ...... 影響する品目名、または診療・処置の種類(書かれたとおり)
- start_date .. 変化が始まる日(書かれていなければ null)
- end_date .... 変化が終わる日(書かれていなければ null)
- direction ... increase / decrease / stop(使わなくなる)/ new(新しく使う)
- amount ...... 書かれた数や割合(書かれていなければ null)
- evidence .... 根拠にした文をそのまま写す

【厳守事項】
- 数が書かれていない場合、amount は null にしてください。
  「増える」「多くなる」から数を推測しないでください。
- 日付が「来週から」のように相対的に書かれている場合は、
  start_date を null にし、evidence にその言葉を残してください。
  メールの受信日から日付を計算しないでください。
- 医療材料の使用量に関係しない内容(会議の案内、お礼など)は抜き出さないでください。
- 1通に複数の変化があれば、それぞれを別の要素にしてください。
- 品目名は書かれたとおりに写してください。品目コードに置き換えないでください。
- 変化が1つも無ければ、changes を空の配列にしてください。

【メールの受信日時】{received_at}
【差出人】{sender}
【本文】{body}

「受信日から日付を計算しない」を明記しているのは、計算を人の確認の場に残すためです。 「来週から」を生成AIが日付に直すと、週の始まりを月曜と取るか日曜と取るかで1日ずれます。 日付の確定は、物品管理係が採用するときに画面で行います。

「数を推測しない」も同じ理由です。 「化学療法の患者が増える」と書かれていても、何名増えるかは書いた看護師長にしか分かりません。数が空の変化は、採用するときに物品管理係が電話で確かめます。

Step7

出力形式を固定する

予定の変化は、次の形のJSONで受け取ります。 Claude API の構造化出力で、output_config.format に JSON スキーマを指定します。

{
  "changes": [
    {
      "department": "5階東病棟",
      "target": "化学療法",
      "start_date": null,
      "end_date": null,
      "direction": "increase",
      "amount": null,
      "evidence": "来週から化学療法の患者さんが増える予定です"
    }
  ]
}

スキーマの制約を先に知っておきます。 公式の説明では、構造化出力ではすべてのオブジェクトに additionalProperties: false を設定する必要があり、minimum・maximum のような数の制約や、minLength・maxLength のような文字列の制約はサポートされていません。amount が負にならないか、といった検証はワークフローの側で行います。 direction は enum で4つの値に絞れます。

予測と補充の案は、Code ノードが次の列の表で出します。

列中身
部署、品目コード、品目名補充リストの行
定数、推定在庫、補充の案定数まで戻す数(包装単位で切り上げ)
予測、内訳基本の予測、予定による上乗せ、採用された予定の変化
注意点定数不足の恐れ/前週より使用が急増/期限の近い在庫あり/品目マスタに無い
根拠計算に使った週数、予定の件数、採用した変化の番号

「内訳」と「根拠」の列が、この表の要です。 補充の数が普段と違うとき、物品管理係はどの要素で増えたのかを1行で読めます。 部署から「なぜこんなに持ってきたのか」と聞かれても、その列を見せれば答えになります。

Step8

システムへ連携する

つなぎ先方式内容
物品管理システム既存の定時CSV出力を読む使用記録、定数、中央在庫、発注残、品目マスタ
手術部門システム既存の定時CSV出力を読む翌日以降の手術・検査の予定
共有メールボックスメールの受信部署からの連絡
Claude APIHTTPでの呼び出し予定の変化の抽出、定数の見直しの説明文
ファイルサーバーRead/Write Files from Disk ノードで書き出す補充リスト、発注の案、注意点の一覧
物品管理システムへの発注人が画面で行う発注の案を見て、担当者が発注する

物品管理システムへ発注のデータを自動で取り込ませることはしません。 発注の案に誤りがあれば、そのまま業者に届き、納品と請求まで進みます。案を出すところまでを自動にし、確定は人が行います。

生成AIに渡すのは、メール本文と見直しの候補の数だけです。 患者の氏名や病名が連絡メールに書かれていることがあるので、本文から患者の個人情報らしい部分を伏せてから渡します(第13章)。

Step9

人が確認する

  1. 予定の変化の採用(前日の夕方) … 抜き出された変化を読み、採用するものに印を付けます。数や日付が空のものは、連絡してきた部署に確かめてから埋めます
  2. 注意点の付いた行を見る(当日の朝) … 「定数不足の恐れ」は、補充の数を定数より多くするか、部署に一時的な増量を相談します
  3. 期限の近い在庫を見る … 期限の近いロットがある品目は、使用の多い部署へ先に回します
  4. 補充リストを確定する … 印刷して部署を回ります
  5. 発注の案を確かめて発注する … 期限の近い在庫、発注残、納品までの日数を見て、数を直してから発注します

1番目を省くと、この構成の前提が崩れます。 予定の変化は、予測の数を大きく動かす入力です。生成AIの読み違いを止められるのは、この採用の場だけです。

目標は、400件をならして1件3分です。 注意点の無い部署は1分ほどで確定でき、手術室や注意点の多い部署は数分かかります。

Step10

例外に対処する

起きること対応
CSVが出ていない、0行予測を出さずに止め、担当者に知らせる。 前日の案を流用しない
手術予定のCSVだけが無い手術室・内視鏡室の予測を出さない。他の部署は出す
品目マスタに無い品目がある別の一覧に出す。新規採用の材料か、コードの誤りかを担当者が確かめる
術式別の標準材料の表に無い術式その手術の上乗せを0にせず、「標準材料が未登録」の注意点を付ける
予測が定数を大きく超える「定数不足の恐れ」。補充を増やすか、部署と相談する
予定の変化の数や日付が空採用の場で部署に確かめる。空のままでは予測に入れない
生成AIが応答しない予定の変化の抽出だけを翌日に回す。予測と補充の計算は止めない
スケジュールが動いていないタイムゾーンと公開の状態を確かめる。出力ファイルの日付で気づく

上から4行目が、稼働の初めによく起きます。 表に無い術式の上乗せを0にすると、その手術の材料が曜日の平均でしか補充されません。 0ではなく「分からない」として注意点に出すのが大事です。

生成AIが止まっても、予測と補充は止めない設計にしています。 生成AIが受け持つのは予定の変化の抽出と説明文だけなので、止まっても補充の案は出ます。

Step11

記録を残す

  • 読み込んだCSVの日付と行数(どのファイルで計算したか)
  • 部署×品目ごとの予測、内訳、補充の案、発注の案
  • 物品管理係が補充の数や発注の数を直した記録(元の案、直した数、理由)
  • 生成AIが抜き出した予定の変化と、採用したか、採用時に埋めた数と日付
  • 欠品しかけた記録(部署から借りに来た、緊急の払出をした)
  • 期限切れで廃棄した品目と数

3つ目の「直した記録」が、予測を育てる材料になります。 同じ品目で毎回人が数を増やしているなら、術式別の標準材料の表か定数のほうに理由があります。

最後の2行は、月1回の定数の見直しの根拠になります。 欠品しかけた品目は定数を上げる候補、期限切れで捨てた品目は下げる候補です。

04実装レベルの3段階

最小構成:表計算で曜日平均と術式の上乗せを計算し、予測と実際を並べる / 予測の妥当性の確認
半自動化:上記+n8n で毎朝CSVを読み、定数との突き合わせと補充の案を自動で出す / 毎朝の集計と補充の案
本格構成:上記+予定の上乗せ、予定の変化の抽出と採用、発注の案、注意点、月1回の定数の見直しの候補まで出す / 補充と発注の判断の下ごしらえ全体

最小構成は確かめるための段階です。 毎朝の20部署には使えません。 半自動化で、1件12分が7分程度になります。 突き合わせは自動になりますが、予定の上乗せと連絡の反映、発注の見積もりが残ります。本格構成で3分になり、この段階が本記事の想定です。 差が大きいのは、手術室の上乗せと連絡メールの反映が、毎朝の手作業だからです。 段階を飛ばさないでください。 半自動化の1か月で、品目マスタに無い品目と、使用記録の抜けが多い部署が先に分かります。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
3 名
月間件数
400 件
1件あたり現在時間
12 分
1件あたり導入後時間
3 分
現在  400件 × 12分 ÷ 60 = 80 時間/月
導入後 400件 × 3分 ÷ 60 = 20 時間/月
月間削減時間
60h
削減率
75%
年間削減時間
720h
年間金額換算(時間単価2,800円)
202万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 病棟・手術室・外来などの部署に医療材料を定数で置き、物品管理の担当者が毎朝の使用記録を見て補充量と発注量を決めている病院。使用記録がバーコードの読み取りや払出の記録として物品管理システムに残っており、CSVで書き出せる場合。手術や検査の予定によって使用量が大きく動く部署があり、補充の判断が担当者の経験に頼っている場合。
向いていない
  1. 物品管理を院外の事業者に全面的に委託しており、補充と発注の判断を院内で行っていない場合。使用記録が紙の伝票だけで、データとして残っていない場合。なお、どの材料を採用するか、定数をいくつにするかの最終決定は、部署の責任者と物品管理の担当者が行うものであり、この構成では代替できません。

07最小構成で試す方法

  1. 物品管理システムから、手術室と病棟1つの直近8週分の使用記録をCSVで書き出す
  2. 表計算で、曜日ごとの平均使用数を出す
  3. 手術室の上位10術式について、通常使う材料と数を手術室の担当者と書き出す
  4. 過去の2週間について、「曜日の平均 + 予定件数 × 術式の材料」で出した予測と、実際の使用数を並べる
  5. 部署から届いた過去の連絡メールを10通選び、手元の生成AIに貼り付けて、「使用量に影響する予定の変化を、書かれたとおりに抜き出してください。書かれていない数や日付は空にしてください」と指示する

2週間分は必ず並べてください。 見たいのは、計算の予測が担当者の経験の読みとどれくらい近いかです。

出てきた内容判断
手術室の予測が実際とおおむね合った術式の表を広げ、ワークフローに進む
特定の術式だけ大きく外れたその術式の標準材料の表を直す。構成は有効
病棟の予測が日によってばらつく使用記録の取り方を先に確かめる。カードの外し忘れを疑う

3行目が出ることは珍しくありません。 その場合は予測の工夫より先に、使用の記録をバーコードの読み取りに寄せるほうが効きます。

08実装時につまずきやすいポイント

問題対策
朝のはずが夜に動く自分で運用するインスタンスの既定は America/New York。ワークフローのタイムゾーンを Asia/Tokyo に
スケジュールがまったく動かないワークフローを保存して公開していない。公開の状態を確かめる
ファイルが読めないn8n 2.0 の既定では ~/.n8n-files しか読めない。N8N_RESTRICT_FILE_ACCESS_TO かボリュームのマウントで出力先を読めるようにする
CSVの列名が番号になるExtract From File のヘッダー行を有効にする
Code ノードでファイルやAPIを扱おうとするCode ノードはファイルの読み書きもHTTPの呼び出しもできない。専用のノードに分ける
生成AIに補充数を決めさせてしまう数は計算、言葉は生成AI と役割を分ける
表に無い術式の上乗せが0になる0ではなく「標準材料が未登録」の注意点にする
定数カードの外し忘れで使用が少なく出るバーコードの読み取りに寄せる。外れ値の印で除く
「来週から」を誤った日付に直す生成AIに日付を計算させない。採用時に人が確定する
発注の案がそのまま発注される取り込みを自動にしない。発注は人が画面で行う

上の2行は、稼働の初日にほぼ必ず誰かが踏みます。 どちらもエラーを出さず、「今朝は一覧ができていない」で初めて気づきます。 出力ファイルの日付を毎朝見る習慣を、最初の1週間は特に意識してください。

6行目は、設計の段階で決めておくことです。 生成AIに数を出させるのは手軽に見えますが、欠品や期限切れが起きたときに、なぜその数だったのかを説明できなくなります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 医療材料の使用記録、在庫と発注の数、業者と品目の情報、手術の予定(日付・部屋・術式)、そして部署からの連絡メールです。連絡メールには、患者の氏名や病名が書かれることがあります。

  1. 手術の予定から患者の情報を外す … 予測に要るのは日付・部屋・術式・件数だけです。手術部門システムの出力に、患者の氏名やIDを含めない設定にします
  2. 連絡メールの本文を伏せてから生成AIに渡す … 「○○さんの退院で」のような記載があれば、氏名らしい部分を伏せる処理を前に置き、伏せられなかったものは渡さずに人が読みます
  3. 発注を自動で確定させない … 誤った発注は、納品・検収・請求まで進みます。案を出すところまでを自動にします
  4. 業者と価格の情報を外部に出さない … 品目マスタの価格や契約の条件は、生成AIに渡す必要がありません。予測と補充の計算は院内のサーバーの中で完結します
  5. 定数の見直しを自動で反映しない … 見直しの候補は説明文の下書きまでです。定数を変えるのは部署の責任者と物品管理係が合意してからです
  6. n8n のサーバーを院内の管理に置く … 自院で運用する n8n には、APIの鍵とファイルサーバーへの接続が集まります。管理画面に入れる人を物品管理係と情報システムの担当に限り、更新の手順を決めておきます

誤りが起きた場合のリスクは、欠品で処置や手術が止まることと、過剰な在庫が期限切れで廃棄になることの2つです。 前者は手術予定が無い日に予測を出すと起き、後者は予定の変化を確かめずに入れると起きます。どちらも、止めるべきところで止める設計で防ぎます。

10まず何から始めるか

1週目:手術室と病棟1つで、予測と実際を並べる

直近8週の使用記録を書き出し、表計算で曜日の平均を出します。手術室の上位10術式の標準材料を、手術室の看護師と書き出します。 過去2週間の予測と実際を並べます。

2週目:CSVの出力と n8n の置き場所を決める

物品管理システムと手術部門システムの定時出力の時刻、出力先、列を確かめます。手術予定の出力に患者の情報が含まれていないかを最優先で見ます。n8n を動かすサーバーを用意し、タイムゾーンとファイルのパスを設定します。

3週目:定数との突き合わせを自動にする

n8n で毎朝CSVを読み、定数との突き合わせと補充の案を出すところまで作ります。手で作った補充リストと、1週間並べて比べます。

4週目:手術室の上乗せを足す

術式別の標準材料の表を読み込み、予定件数との掛け合わせを足します。表に無い術式が注意点に出るかを確かめます。

2か月目: 連絡メールからの予定の変化の抽出と採用の画面を足し、発注の案を出します。物品管理係が数を直した記録を毎週見ます。3か月目以降: 定数の見直しの候補を月1回出し、1件12分が何分になったかを実測します。欠品しかけた記録と期限切れの記録をもとに、最初の定数の見直しを部署と合意できた時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-09-29/最終更新:2026-09-29
確認した内容情報源確認日
Schedule Trigger が秒・分・時間・日・週・月の間隔と cron 式で起動できること。ワークフローのタイムゾーン、無ければインスタンスのタイムゾーンを使い、自分で運用するインスタンスの既定が America/New York であること。保存して公開しないと動かないことn8n Docs: Schedule Trigger node2026-09-29
Code ノードが JavaScript と Python に対応し、既定が「Run Once for All Items」であること。ファイルシステムへのアクセスとHTTPの呼び出しができないことn8n Docs: Code node2026-09-29
Read/Write Files from Disk ノードが n8n の動くマシンのファイルを読み書きし、n8n Cloud では制限が大きいこと。ワイルドカードの指定。N8N_RESTRICT_FILE_ACCESS_TO と、n8n 2.0 からの既定 ~/.n8n-files、Docker でのボリュームのマウントn8n Docs: Read/Write Files from Disk2026-09-29
Extract From File ノードがCSV・XLS・XLSXなどをJSONに変え、ヘッダー行を外すと番号付きの行で出力されることn8n Docs: Extract From File2026-09-29
構造化出力を output_config.format で指定すること。additionalProperties: false が必須で、minimum・maximum・minLength・maxLength などがサポートされないこと。enum が使えることClaude Docs: Structured outputs2026-09-29
改正された医薬品医療機器等法により、医薬品・医療機器等を特定する符号としてバーコード又は二次元コードを容器等へ表示することが令和4年12月1日から義務化されること厚生労働省: 医療用麻薬製品、臨床試用医薬品及び再生医療等製品へのバーコード表示について(事務連絡)2026-09-29

定数をいくつにするか、どの材料を採用するかは、部署の責任者と物品管理の担当者で決めてください。 本記事は公開されている製品のドキュメントと厚生労働省の資料で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0328)についてのご相談はこちらから。

AI活用について相談する
目次