製薬会社の安全性部門で、毎週の文献検索で集まった論文の要旨から自社製品の有害事象の報告に当たりうるものを一次判定し、担当者の確認に回す
毎週の文献検索で集まった論文の要旨を1件ずつ読み、自社製品の有害事象の報告に当たりうるかを一次判定します。根拠の文を付けて担当者に回し、全文を取り寄せる文献を早く決められるようにします。
- 生成AI
- Azure OpenAI Service/ChatGPT/Claude
- 連携・自動化
- Power Automate
- 対象業界
- 医療/製造
- 対象部門
- 品質管理/研究開発
- 対象業務
- 内容確認・チェック/分類・仕分け
- 主な課題
- 人手が足りない/判断に時間がかかる/期限・対応漏れが起きる
- AIで行う処理
- 判定
- 主な効果
- 判断支援/品質標準化/工数削減
- 導入難易度
- ★★★★★
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 月曜に、担当者が成分ごとの検索式で PubMed と国内の文献データベースを検索する
- 新しく出てきた文献の要旨を表計算の一覧に書き出し、前週までに見たものを除く
- 4名で成分を分け、要旨を1件ずつ読む
- 自社製品と同じ成分が出てくるか、患者と有害事象の記載があるか、研究結果として安全性に関わるかを判断する
- 症例の可能性があるもの、要旨だけでは分からないものについて、全文の取り寄せを依頼する
- 関係ないと判断したものに、一覧で理由を書く
- 取り寄せた全文を読み、報告に当たるかを評価して、安全性情報の管理システムに登録する
- 自動毎週月曜の早朝に、成分ごとの検索式で PubMed を検索し、新しい文献の要旨を取る
- 【人/自動】 国内の文献データベースは、契約の範囲で書き出したファイルを所定のフォルダに置く
- 自動前週までに判定した文献を、文献の番号で除く
- 自動成分の別名の辞書で、要旨の中の成分の記載に印を付ける
- 自動生成AIが、要旨ごとに項目を判定し、根拠の文を写す
- 自動項目の判定から、振り分け(症例の候補/研究結果の候補/全文が要る/関係ない)を規則で決める
- 自動根拠の文が要旨に本当にあるかを照合する
- 人担当者が、症例の候補・研究結果の候補・全文が要るものを読み、取り寄せを決める
- 人担当者が、「関係ない」の一覧を理由と根拠の文で流し読みし、引き上げるものを選ぶ
- 人取り寄せた全文を読み、報告に当たるかを評価する(いまと同じ)
各工程の詳しい説明を読む
- 月曜に、担当者が成分ごとの検索式で PubMed と国内の文献データベースを検索する
- 新しく出てきた文献の要旨を表計算の一覧に書き出し、前週までに見たものを除く
- 4名で成分を分け、要旨を1件ずつ読む
- 自社製品と同じ成分が出てくるか、患者と有害事象の記載があるか、研究結果として安全性に関わるかを判断する
- 症例の可能性があるもの、要旨だけでは分からないものについて、全文の取り寄せを依頼する
- 関係ないと判断したものに、一覧で理由を書く
- 取り寄せた全文を読み、報告に当たるかを評価して、安全性情報の管理システムに登録する
(a)読み切るのに日数がかかる。 1週間に約300件の要旨を4名で読むと、ほかの業務と並行するため木曜や金曜までかかります。取り寄せの依頼が週の後半にずれ込むと、全文が届くのはさらにその先です。
(b)読み手で判断が分かれる。 要旨に「肝機能検査値の上昇がみられた」とあるとき、症例の可能性ありとして全文を取り寄せる担当者もいれば、集団の研究の結果として「関係ない」とする担当者もいます。手順書はあっても、要旨のどの文を根拠にしたかが一覧に残らないので、後から判断を見直せません。
(c)「関係ない」の理由が短い。 件数が多い週ほど、理由の欄が「対象外」の一言になります。監査や点検のときに、なぜ対象外としたかを説明できない文献が残ります。
(d)成分名の書き方がばらばら。 一般名、略号、海外の販売名、化学名で書かれていることがあり、要旨の中で成分を見つけること自体に時間がかかります。
- 【自動】 毎週月曜の早朝に、成分ごとの検索式で PubMed を検索し、新しい文献の要旨を取る
- 【人/自動】 国内の文献データベースは、契約の範囲で書き出したファイルを所定のフォルダに置く
- 【自動】 前週までに判定した文献を、文献の番号で除く
- 【自動】 成分の別名の辞書で、要旨の中の成分の記載に印を付ける
- 【自動】 生成AIが、要旨ごとに項目を判定し、根拠の文を写す
- 【自動】 項目の判定から、振り分け(症例の候補/研究結果の候補/全文が要る/関係ない)を規則で決める
- 【自動】 根拠の文が要旨に本当にあるかを照合する
- 【人】 担当者が、症例の候補・研究結果の候補・全文が要るものを読み、取り寄せを決める
- 【人】 担当者が、「関係ない」の一覧を理由と根拠の文で流し読みし、引き上げるものを選ぶ
- 【人】 取り寄せた全文を読み、報告に当たるかを評価する(いまと同じ)
6番目を規則で決めているのが、この設計の分かれ目です。 AIには「患者の記載があるか」「事象の記載があるか」という事実を判定させ、振り分けは社内の手順書に沿った規則で決めます。 手順書が改訂されても、直すのは規則だけです。
9番目を省かないでください。 「関係ない」の一覧を誰も見ない運用にすると、拾うべき1件が漏れたときに気づく人がいません。一覧で理由を読むだけなので、1件あたりは数秒です。
02今回想定するシステム構成
成分ごとの検索式 ▼【トリガー】毎週月曜の早朝(定時実行) Azure Functions ├──▶ PubMed(E-utilities:ESearch で文献の番号、EFetch で要旨) ├──▶ 国内の文献データベースの書き出しファイル(所定のフォルダ) ├──▶ 判定済みの文献の除外(文献の番号で照合) └──▶ 成分の別名の辞書で印を付ける ▼ Azure OpenAI(構造化出力)── 項目ごとの判定と根拠の文の写し ▼ Azure Functions ── 根拠の照合、振り分けの規則、一覧の作成 ▼ 【安全性の担当者が確認】 ├──▶ 全文の取り寄せ(複写サービス) └──▶ 安全性情報の管理システムへの登録(いまと同じ手順)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | OpenAI API、Claude API |
| 連携 | Azure Functions(定時実行、文献の取得、照合、振り分けの規則) | Power Automate |
| 保管 | Azure SQL Database(要旨、判定、根拠、担当者の確認の記録) | 社内のデータベース |
| 確認画面 | 社内の業務用の Web 画面(要旨と判定と根拠を並べる) | 共有の一覧 |
安全性情報の管理システムには書き込みません。 症例の登録と評価は、いまと同じく担当者が全文を読んでから行います。この構成が出すのは、どれを先に読むかの判定と、その根拠までです。
Azure OpenAI を選ぶ理由は2つです。 1つは、構造化出力で JSON スキーマに沿った出力を受けられることです。公式の説明では、Chat Completions API と Responses API の両方で構造化出力が使え、指定した JSON スキーマに従うとされています。項目ごとの判定を決まった形で受けられるので、振り分けを規則で書けます。
もう1つは、データの扱いです。 公式の説明では、プロンプトと出力は他のお客様に提供されず、OpenAI にも提供されず、許可なく基盤モデルの学習に使われないとされています。要旨そのものは公開情報ですが、どの成分をどの検索式で監視しているか、どの文献を症例の候補としたかは社内の情報です。 Global や DataZone のデプロイでは処理の場所が指定の地域の外に広がりうるとされているので、デプロイの種類は社内の規程に合わせて選びます。
PubMed の取得には E-utilities を使います。 NLM の説明では、ESearch は文献の番号(UID)の一覧だけを返し、完全なレコードは返さないとされ、EFetch が UID の一覧に対応するレコードを返すとされています。検索と取得を2段に分けるのは、この役割の違いのためです。
03どうやって実装するのか
処理の起点を決める
毎週月曜の早朝に定時で動かします。 いまの運用と同じ曜日にそろえるのは、週の区切りを変えると、どの週にどの文献を見たかの記録が前後でずれるからです。
早朝に動かすのには、もう一つ理由があります。 NLM の説明では、大きな処理は週末か、平日の米国東部時間の午後9時から午前5時に限るよう求められています。日本時間の月曜の早朝は、米国東部時間では日曜にあたります。 40成分の検索をまとめて回しても、この求めに沿います。
国内の文献データベースは、契約の範囲で書き出したファイルを担当者が所定のフォルダに置き、置かれたことをきっかけに同じ処理に流します。 自動でログインして取りに行く形にはしません。データベースの利用規約で認められているかを確かめないまま、自動の取得を組まないためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 要旨 | 文献の番号、題名、著者、雑誌、発行の情報、要旨の本文 | PubMed(EFetch)、国内の文献データベースの書き出し |
| 成分の情報 | 成分ごとの一般名、略号、国内外の販売名、自社製品の名前 | 自社で整える成分の別名の辞書 |
| 判定の規則 | 症例の候補・研究結果の候補・全文が要る・関係ないの条件 | 社内の手順書を規則に書き直したもの |
| 判定済みの文献 | 過去に判定した文献の番号と、そのときの振り分け | 判定の記録の表 |
質を決めるのは、成分の別名の辞書です。 (d)のように、要旨には一般名・略号・海外の販売名が混ざります。辞書に無い書き方の成分は、AIにも見つけにくくなります。 新しい販売名や略号を見つけたら、そのつど辞書に足します。
判定の規則は、手順書をそのまま渡すのではなく、条件の表に書き直します。 手順書の文章をAIに解釈させると、担当者ごとの読み方の違いが、そのままAIの揺れになります。
データの取得方法を決める
PubMed は、成分ごとの検索式で ESearch を呼んで文献の番号を取り、その番号で EFetch を呼んで要旨を取ります。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 文献の番号の一覧 | ESearch | 新しい文献の洗い出し |
| 要旨と書誌 | EFetch | 判定の入力 |
| 書き出しファイル | 国内の文献データベース | 国内文献の判定の入力 |
| 判定済みの番号 | 判定の記録の表 | 重複の除外 |
日付の範囲は、NLM の説明に沿って指定します。 datetype で日付の種類を選び、PubMed では crdt・edat・pdat・mhda が指定できるとされています。範囲を指定するには mindate と maxdate の両方が必要とされ、形式は YYYY/MM/DD などです。範囲は前週より数日広く取り、重なった分は文献の番号で除きます。 範囲をぴったり1週間にすると、登録のタイミングのずれで抜ける文献が出ます。
成分ごとの要求は、次のような形になります(検索式と日付は例です)。
ESearch:
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi
?db=pubmed&term=<成分ごとの検索式>
&datetype=edat&mindate=2026/10/02&maxdate=2026/10/12
&retmax=1000&tool=<自社のツール名>&email=<部門の連絡先>
EFetch:
https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi
?db=pubmed&id=<ESearchで得た番号をカンマ区切り>
&retmode=text&rettype=abstract&tool=<同上>&email=<同上>
検索式そのものは、いまの運用で使っているものをそのまま移します。 検索式を変えると、変える前と後で拾える文献が変わり、どちらが正しいかを確かめる手間が増えます。
要旨の取り方は、公式の例では retmode=text と rettype=abstract を指定しています。 1回の要求で取れる件数にも上限があり、ESummary と EFetch の retmax は最大10,000件とされています。1週間の件数はこれを大きく下回りますが、成分ごとに分けて呼びます。
要求の頻度は、1秒あたり3回を超えないよう求められています。 40成分を続けて呼ぶので、要求の間に待ちを入れます。tool と email のパラメーターも付けます。 すべての E-utilities の URL で使用が推奨されているとされ、問題があったときに NLM から連絡を受けられます。
AIへ渡す前に整形する
- 重複の除去 … 文献の番号で、前週までに判定したものと同じ週の重複を除きます
- PubMed と国内データベースの重複 … 同じ論文が両方に出ることがあるので、題名と雑誌と巻号で束ねます
- 成分の印 … 別名の辞書で要旨の中の成分の記載を探し、
[成分:一般名]の形で印を付けます - 要旨の無い文献 … 要旨の無いものは判定せず、題名だけで「全文が要る」か「関係ない」を担当者が決める一覧へ回します
- 言語の確認 … 英語・日本語以外の要旨は、AIの判定に回したうえで「言語」の印を付け、担当者が必ず読む扱いにします
- 撤回された論文 … 撤回の告知とその元の論文は、判定とは別に担当者へ知らせます
3番目を前処理で行うのは、成分の見落としをAIの読みに任せないためです。 辞書で印が付いた要旨は、成分の記載が「ある」ことが機械的に確定します。AIには、その成分と事象が結びついて書かれているかを判定させます。
4番目も大事です。 症例報告は短く、要旨が付いていないこともあります。要旨が無いことを理由に「関係ない」へ入れないでください。
AIに処理させる
させるのは、要旨に書かれていることを項目ごとに判定し、根拠の文をそのまま写すことです。
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 対象の成分 | 印の付いた成分が、投与された薬として書かれているか | 比較の対照としてだけ出てくるなら comparator_only |
| 患者 | 個々の患者(年齢・性別・症例の番号など)の記載があるか | 集団の研究なら population |
| 有害事象 | 成分の投与と結びついた事象の記載があるか | 結びつきが読み取れなければ unclear |
| 研究結果 | 安全性に関わる結果(発現の頻度、リスクの比較)があるか | 有効性だけなら efficacy_only |
| 重篤を示す語 | 死亡、入院、障害などの語があるか | 語があるかだけを見る |
| 妊娠・授乳・小児 | 妊娠中の投与、授乳、小児の記載があるか | 語があるかだけを見る |
下の2行は、評価ではなく「先に読む」ための印です。 重篤かどうか、報告の区分がどれかは担当者が全文を読んで決めます。AIが付けるのは、その語が要旨に書かれているかどうかだけです。
| させないこと | 理由 |
|---|---|
| 報告に当たるかの結論 | 手順書と法令に沿って担当者と責任者が決める |
| 重篤性・予測可能性の評価 | 添付文書の記載と全文を照らす必要がある |
| 因果関係の評価 | 要旨だけでは判断できない |
| 報告の期限の計算 | 起算の日は担当者が決め、管理システムで管理する |
| 要旨に無い情報の補い | 「おそらく症例報告である」などの推測は誤りの元になる |
指示内容を固定する
あなたは製薬会社の安全性部門で、文献の要旨を一次判定する担当です。
渡された要旨に書かれていることだけで判定してください。推測で補わないでください。
【判定する項目】
1. drug_role:印の付いた成分が、投与された薬として書かれているか
(administered / comparator_only / not_found)
2. patient:個々の患者の記載があるか(individual / population / none)
3. event_link:成分の投与と結びついた有害事象の記載があるか(yes / no / unclear)
4. safety_result:安全性に関わる研究結果があるか(yes / efficacy_only / none)
5. serious_terms:死亡、入院、障害、生命を脅かす、先天異常にあたる語を列挙
6. special_population:妊娠、授乳、小児の語を列挙
【厳守事項】
- 各項目に evidence として、根拠にした文を要旨から一字一句そのまま写してください。
写せる文が無い項目は、evidence を空にしてください。
- 迷ったときは unclear を選んでください。no や none を選ばないでください。
- 「関係ない」と言える根拠が要旨に無いときに、none にしないでください。
- 報告に当たるか、重篤か、予測できるか、因果関係があるかは書かないでください。
- 要旨に無い患者の数、年齢、事象を補わないでください。
- 成分名は、印の付いた一般名で書いてください。別の成分と取り違えないでください。
- not_relevant_reason には、関係ないと考える理由を、要旨の文を引いて書いてください。
【成分の印が付いた要旨】{abstract}
【書誌】{bibliographic}
「迷ったら unclear」を明記しないと、モデルは no を選びがちです。 要旨の多くは有効性の研究で、事象の記載がはっきりしないものを「無い」と読むほうが自然だからです。この業務で高くつくのは拾い過ぎではなく、取りこぼしです。 指示の側で、取りこぼしの方向に倒れないようにします。
not_relevant_reason に要旨の文を引かせるのは、(c)の対策です。 担当者が「関係ない」の一覧を流し読みするとき、理由と根拠の文が並んでいれば、1件数秒で確かめられます。
出力形式を固定する
次の形のJSONで受け取ります。
{
"article_id": "",
"source": "pubmed | domestic_db",
"ingredient": "",
"drug_role": "administered | comparator_only | not_found",
"patient": "individual | population | none",
"event_link": "yes | no | unclear",
"safety_result": "yes | efficacy_only | none",
"serious_terms": [],
"special_population": [],
"evidence": [
{ "item": "", "quote": "" }
],
"not_relevant_reason": ""
}
振り分けは、この出力から規則で決めます。
| 振り分け | 条件 |
|---|---|
| 症例の候補 | drug_role が administered、patient が individual、event_link が yes |
| 研究結果の候補 | drug_role が administered、safety_result が yes |
| 全文が要る | いずれかの項目が unclear、または要旨が無い、または言語の印がある |
| 関係ない | drug_role が not_found または comparator_only で、ほかに unclear が無い |
| 共通 | serious_terms か special_population に語があれば、どの振り分けでも先頭に並べる |
1つ目の理由は、判定と振り分けを別の層に置けることです。 手順書の条件が変わっても、AIへの指示はそのままで規則の表だけを直します。
2つ目は、「関係ない」の条件を狭く書けることです。 成分が投与の薬として出てこないものだけを「関係ない」にし、それ以外はすべて人が読む側に残ります。
構造化出力では、すべてのフィールドを必須にし、オブジェクトに additionalProperties: false を設定する必要があるとされています。 列挙した語が無いときは空の配列で返させます。配列の要素数の上限(maxItems)は使えないとされているので、根拠の数はプログラムの側で確かめます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| PubMed | E-utilities(ESearch・EFetch) | 文献の番号と要旨を取る |
| 国内の文献データベース | 書き出しファイル | 担当者が置いたファイルを読む |
| Azure OpenAI | API呼び出し | 項目ごとの判定と根拠の写し |
| 判定の記録の表 | Azure SQL Database | 判定・根拠・振り分け・担当者の確認を残す |
| 確認画面 | 社内の Web 画面 | 振り分けごとの一覧と、要旨と根拠の並べた表示 |
| 安全性情報の管理システム | 担当者の操作 | 登録はいまと同じく担当者が行う |
照合は Azure Functions で行います。 quote が要旨の本文にそのまま無ければ、その項目の判定を unclear に置き換え、振り分けを「全文が要る」に寄せます。 根拠の無い判定を、そのまま「関係ない」の理由に使わないためです。
人が確認する
人が読む順番は、先頭に並んだものからです。
- 重篤を示す語・妊娠・小児の印があるもの … どの振り分けでも先に読み、取り寄せを決めます
- 症例の候補 … 要旨と根拠の文を読み、全文を取り寄せます
- 全文が要るもの … 要旨で判断できるものは振り分けを直し、できないものは取り寄せます
- 研究結果の候補 … 研究報告として扱うかを、手順書に沿って判断します
- 関係ない … 理由と根拠の文を一覧で流し読みし、引き上げるものを選びます
5番目は全件に目を通します。 1件ずつ要旨を読み直すのではなく、理由と根拠の文を読み、理由が要旨と合っていないものだけを開きます。
判定を覆したら記録します。 どの項目を、どちらに変えたかを残し、AIが「関係ない」としたものを担当者が引き上げた件数を、毎週数えます。 これが、この構成の取りこぼしの目安になります。
目標は、1,200件をならして1件2分です。 症例の候補と全文が要るものは数分かかり、「関係ない」の一覧は数秒で済みます。
例外に対処する
| 起きること | 対応 |
|---|---|
| E-utilities が応答しない・エラーを返す | 時間をおいて再実行し、それでも取れなければ担当者がいまの手順で検索する |
| 1秒あたりの要求の上限を超える | 要求の間に待ちを入れて、3回以内に抑える |
| 国内データベースのファイルが置かれない | 月曜の昼に未着を担当者へ知らせる |
| 要旨が無い | 判定せず、題名で担当者が決める一覧へ |
| 英語・日本語以外の要旨 | 判定はするが、担当者が必ず読む |
| 成分の辞書に無い書き方 | 題名・要旨に販売名らしい語があれば印を付けて担当者へ。辞書に足す |
| 根拠の写しが要旨に無い | その項目を unclear にし、「全文が要る」へ |
| 撤回された論文 | 判定とは別に、撤回の告知として担当者へ知らせる |
| Azure OpenAI が応答しない | 判定の待ちとして残し、月曜のうちに終わらなければ担当者に知らせる |
最後の行は、期限に関わるので止まり方を決めておきます。 判定が終わらないまま週の半ばになるくらいなら、担当者がいまの手順で読み始めるほうが安全です。 「AIの判定待ち」で読む作業が止まる状態を作らないでください。
記録を残す
- 検索した日時、成分ごとの検索式、日付の範囲、取れた文献の番号の一覧
- 要旨の本文と書誌(そのとき取ったもの)
- AIの判定の全文(JSON)と、根拠の照合の結果
- 規則で決めた振り分けと、そのときの規則の版
- 担当者が判定を覆した記録 … どの文献の、どの項目を、どう変えたか
- 取り寄せを依頼した日時と、全文が届いた日時
検索式と日付の範囲を残すのは、「その週に何を検索したか」を後から示すためです。 監査や点検で、ある文献をいつ知り得たかを問われたときに、検索した日と判定した日と取り寄せた日がつながっている必要があります。
規則の版を残すのは、手順書が改訂されたときのためです。 振り分けの条件が変わると、過去の「関係ない」の意味が変わります。
04実装レベルの3段階
最小構成では件数がさばけません。 1件ずつ貼るので、月1,200件には使えません。判定が手順書の振り分けと合うかを確かめるための段階です。 半自動化で、1件5分が3分程度になります。 取得と判定は自動になりますが、振り分けを決める作業と、根拠を確かめる作業が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、振り分けが規則で決まり、根拠の照合が済んだ状態で担当者が読むからです。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、成分の辞書に足りない書き方と、AIが迷いやすい要旨の型が見えます。そこを直してから本格構成に進むほうが、「全文が要る」の過剰が減ります。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 販売している医薬品が数十成分あり、成分ごとの検索式で毎週の文献検索を回して、月に千件前後の要旨を安全性部門の担当者が1件ずつ読んでいる製薬会社。読み手によって「症例に当たるか」「全文を取り寄せるか」の判断が分かれ、取り寄せの判断が遅れて報告の期限に余裕がなくなることがある場合。社内の手順書で、文献から症例を拾う要件と判断の流れが文書になっている場合。
- 販売している成分が少なく、毎週の要旨が数十件で担当者が全件を丁寧に読める場合。文献から症例を拾う要件が手順書になっておらず、担当者の経験だけで判断している場合(先に手順書を作る必要があります)。なお、副作用等の報告に当たるかどうか、重篤性・予測可能性の評価、報告の区分と期限の決定、因果関係の評価は、この構成では代替できません。これらは安全性の担当者と安全管理の責任者が行います。
07最小構成で試す方法
- 過去の検索で集まった要旨から100件を選ぶ(うち10件は、実際に症例として取り寄せたものを入れる)
- その100件について、当時の担当者の振り分けを一覧にしておく
- Azure OpenAI の画面(Foundry のプレイグラウンド)に、成分の別名と要旨を1件ずつ貼る
- 「この要旨について、成分が投与の薬として書かれているか、個々の患者の記載があるか、成分と結びついた有害事象の記載があるかを判定し、根拠の文をそのまま写してください。迷ったら unclear にしてください」と指示する
- 出てきた判定から振り分けを手で決め、当時の振り分けと比べる
最初に見るのは、取り寄せた10件です。 この10件が1件でも「関係ない」に入るなら、本格構成に進む前に指示と規則を直します。
| 出てきた内容 | 判断 |
|---|---|
| 取り寄せた10件がすべて人の読む側に入った | 取得と規則の自動化に進む |
| 取り寄せた文献が「関係ない」に入った | 指示の「迷ったら unclear」と規則の条件を直す |
| 成分を見つけられない要旨が多い | 別名の辞書の整備が先。 AIの問題ではない |
| 「全文が要る」が多すぎる | 規則の条件を見直す。ただし取りこぼしより優先しない |
4行目は、ある程度は受け入れてください。 拾い過ぎは担当者の手間で済みますが、取りこぼしは報告の遅れになります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 事象のはっきりしない要旨が「関係ない」に入る | 迷ったら unclear を指示し、「関係ない」の条件を狭く書く |
| 要旨の無い症例報告が落ちる | 要旨が無いものは判定せず、担当者の一覧へ |
| 成分の略号や海外の販売名を見落とす | 別名の辞書で前処理の段階で印を付ける |
| 比較の対照としての記載を投与と読む | comparator_only を分けて判定させる |
| 根拠の写しが要旨と一字違う | 照合で外し、その項目を unclear にする |
| E-utilities の要求の頻度を超える | 1秒あたり3回以内に抑える。tool と email を付ける |
| 日付の範囲がぴったりで文献が抜ける | 範囲を広めに取り、文献の番号で重複を除く |
| 国内データベースを自動で取りに行く | 利用規約を確かめる。 書き出しファイルで受ける |
| 判定待ちで読む作業が止まる | 止まったら担当者がいまの手順で読む |
| 「全文が要る」が多すぎて不満が出る | 規則を見直すが、取りこぼしより優先しない |
| AIの判定を報告の判断と混同する | 画面の表示を「一次判定」とし、報告の区分を出さない |
上の2行が、この構成でいちばん重い失敗です。 どちらも、拾うべき文献が人の目に触れない経路です。指示と規則と照合の3か所で、取りこぼしの方向に倒れないようにします。
最後の行も早く効いてきます。 一次判定の画面に「報告対象」のような言葉を出すと、担当者がそれを評価の結果と受け取ります。画面の言葉は「先に読む」「全文が要る」のように、作業の順番を表すものにします。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 論文の要旨と書誌(公開情報)、成分ごとの検索式、どの文献を症例の候補としたかの判定、担当者の確認の記録です。要旨の中に、症例の患者の年齢・性別などが書かれていることがあります。
- AIは報告の判断をしない … 施行規則では、副作用によるものと疑われる症例等を知ったときに、事項ごとに15日・30日といった期間内に報告する定めがあります。どの事項に当たるか、いつ知ったとするかは、担当者と安全管理の責任者が決めます。 AIの判定は、読む順番を決める材料にとどめます
- 取りこぼしの方向に倒れない設計にする … 迷ったら人が読む側に入れ、「関係ない」の一覧も全件に目を通します
- データの扱いを確かめる … 公式の説明では、プロンプトと出力は他のお客様にも OpenAI にも提供されず、許可なく学習に使われないとされています。不正使用の監視でプロンプトと出力が保存され、人が確認する場合があるとされ、変更の申請ができるとされています
- 処理の場所を確かめる … Global や DataZone のデプロイでは処理の場所が指定の地域の外に広がりうるとされています。社内の規程に合わせてデプロイの種類を選びます
- 文献データベースの利用条件を守る … 国内の文献データベースの書き出しを外部のサービスで処理してよいか、全文を生成AIに渡してよいかは、契約ごとに確かめます。この構成では要旨までを渡し、全文は渡しません
- 変更を記録する … 指示・規則・辞書・モデルのバージョンを変えたら、いつ何を変えたかを残します。変更の前後で、取り寄せた文献の取りこぼしが出ていないかを確かめます
誤りが起きた場合のリスクは、拾うべき文献を「関係ない」とすることがいちばん重く、報告の遅れにつながります。拾い過ぎは担当者の手間で済むので、迷ったら拾う側に倒すことを、指示・規則・運用のすべてで守ります。
10まず何から始めるか
1週目:手順書を条件の表にする
社内の手順書から、症例の候補・研究結果の候補・全文が要る・関係ないの条件を抜き出し、表に書き直します。「関係ない」の条件をいちばん狭く書くのが要点です。
2週目:成分の別名の辞書を作る
40成分について、一般名・略号・国内外の販売名・自社製品の名前を集めます。件数の多い成分から始め、過去の一覧で見落としがあった書き方を必ず入れます。
3週目:100件で試す
過去の要旨100件で最小構成を試し、当時の振り分けと比べます。取り寄せた10件が人の読む側に入るかを最優先で見ます。
4週目:社内の手順と記録の形を決める
構成の変更の扱い、判定の記録の残し方、「関係ない」の一覧の確認の手順を、品質の担当と決めます。ここが決まらないうちに本番の運用に入らないでください。
2か月目: E-utilities での取得と判定を自動にし、一覧に書き出して、いまの担当者の判断と並べて運用します(半自動化)。3か月目以降: 根拠の照合、振り分けの規則、確認画面を足し、1件5分が何分になったかを実測します。AIが「関係ない」としたものを担当者が引き上げた件数を毎週数え、それが安定して少ないことを確かめた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 医薬品の製造販売業者が、製造販売する医薬品について、副作用によるものと疑われる死亡・重篤な症例等の事項を知ったときに、事項ごとに15日・30日の期間内に厚生労働大臣に報告しなければならないとされること(第228条の20) | e-Gov 法令API: 医薬品、医療機器等の品質、有効性及び安全性の確保等に関する法律施行規則 | 2026-10-14 |
ESearch が UID の一覧だけを返し、EFetch が UID に対応するレコードを返すこと。1秒あたり3回を超えて要求しないよう求めていること。ESummary と EFetch の retmax が最大10,000件であること。PubMed の datetype に crdt・edat・pdat・mhda があり、範囲の指定に mindate と maxdate の両方が必要なこと。要旨を retmode=text と rettype=abstract で取る例。大きな処理は週末か平日の米国東部時間午後9時〜午前5時に限るよう求めていること。tool と email の使用が推奨されていること。なお、このページは更新されておらず最新は NCBI の文書を参照するよう案内されていること | NLM: E-utilities(The 9 E-utilities and Associated Parameters) | 2026-10-14 |
Chat Completions API と Responses API の両方で構造化出力が使えること。すべてのフィールドを必須にし、オブジェクトに additionalProperties: false を設定する必要があること。配列の maxItems などが非対応であること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-14 |
| プロンプトと出力が他のお客様や OpenAI に提供されず、許可なく基盤モデルの学習に使われないこと。Global・DataZone のデプロイでは処理の場所が指定の地域の外に広がりうること。不正使用の監視でプロンプトと出力が保存・確認される場合があり、変更の申請ができること | Microsoft Learn: Azure が販売する Foundry モデルのデータ、プライバシー、セキュリティ | 2026-10-14 |
副作用等の報告に当たるか、重篤性・予測可能性、報告の区分と期限は、安全性の担当者と安全管理の責任者が判断してください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1503)についてのご相談はこちらから。
