健診センターで、健診結果の数値と問診から所見のコメントと保健指導の案内文の下書きを作り、医師の確認に回す
健診の検査値と判定区分、前回までの値、問診の回答から、結果報告書に載せる所見のコメントと保健指導の案内文の下書きを作ります。医師は下書きを確かめて直し、承認するだけになります。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- 連携・自動化
- Power Automate
- 対象業界
- 医療
- 対象部門
- 総務
- 対象業務
- 書類作成
- 主な課題
- 人手が足りない/属人化している/書類作成に時間がかかる
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 検査値がすべてそろった受診者の一覧を、健診システムで開く
- 受診者ごとに、今回の検査値と判定区分、前回・前々回の値を見る
- 問診の回答(服薬、喫煙、飲酒、運動、既往歴)を見る
- 判定区分が付いた項目ごとに、所見のコメントを書く。文例を見ながら、値と経年変化を書き込む
- 複数の項目に所見がある受診者は、全体のまとめのコメントを書く
- 特定保健指導の対象になった受診者には、保健師が案内文を書く
- 医師が見直して承認し、結果報告書を印刷して発送する
- 自動毎晩、検査値がすべてそろった受診者を健診システムから書き出す
- 自動Azure Functions が、受診者ごとに今回の値・判定区分・前回までの値・問診をまとめ、項目ごとに判定と対応の分類の番号を規則で付ける
- 自動Azure OpenAI に、施設の文例集から文例を選ばせ、受診者の値と経年変化を当てはめたコメントと案内文の下書きを作らせる
- 自動Azure Functions が、コメント中の数値と検査値を照合し、受診を勧めるべき項目に勧める文があるかを確かめる
- 人医師が、確認の画面で判定と下書きを並べて読み、直して承認する
- 人保健師が、特定保健指導の案内文を確かめる
- 自動承認されたものだけを結果報告書に差し込み、印刷の対象にする
各工程の詳しい説明を読む
- 検査値がすべてそろった受診者の一覧を、健診システムで開く
- 受診者ごとに、今回の検査値と判定区分、前回・前々回の値を見る
- 問診の回答(服薬、喫煙、飲酒、運動、既往歴)を見る
- 判定区分が付いた項目ごとに、所見のコメントを書く。文例を見ながら、値と経年変化を書き込む
- 複数の項目に所見がある受診者は、全体のまとめのコメントを書く
- 特定保健指導の対象になった受診者には、保健師が案内文を書く
- 医師が見直して承認し、結果報告書を印刷して発送する
(a)文章を書く時間が医師の時間を取る。 1人あたりのコメントは数行ですが、月3,000人分になります。判定を確かめる時間より、文章を整える時間のほうが長くなっています。
(b)書き方が医師によって違う。 同じLDLコレステロール150mg/dLでも、ある医師は「医療機関の受診を」と書き、別の医師は「生活習慣の改善を」と書きます。判定と対応の分類では、肥満の有無や他の危険因子で勧める対応が変わるのに、それが医師の頭の中にしかありません。
(c)経年変化が書かれないことがある。 前回より悪化している項目は、今回の値が判定の境目より下でも注意を促したいところです。忙しいと、今回の値だけを見たコメントになります。
(d)数値の書き写しの誤り。 コメントに値を書き写すときに、桁や項目を取り違えることがあります。見直しで見つけるしかありません。
(e)案内文が後回しになる。 特定保健指導の案内文は、医師のコメントが終わってから保健師が書きます。コメントが遅れると案内文も遅れ、初回面接の予約が受診から1か月以上先になることがあります。間が空くほど、受診者の関心は薄れます。
- 【自動】 毎晩、検査値がすべてそろった受診者を健診システムから書き出す
- 【自動】 Azure Functions が、受診者ごとに今回の値・判定区分・前回までの値・問診をまとめ、項目ごとに判定と対応の分類の番号を規則で付ける
- 【自動】 Azure OpenAI に、施設の文例集から文例を選ばせ、受診者の値と経年変化を当てはめたコメントと案内文の下書きを作らせる
- 【自動】 Azure Functions が、コメント中の数値と検査値を照合し、受診を勧めるべき項目に勧める文があるかを確かめる
- 【人】 医師が、確認の画面で判定と下書きを並べて読み、直して承認する
- 【人】 保健師が、特定保健指導の案内文を確かめる
- 【自動】 承認されたものだけを結果報告書に差し込み、印刷の対象にする
5番目が、この設計の分かれ目です。 医師はコメントを書きません。判定と下書きを並べて読み、医学的に違うところを直します。 承認していない下書きは、結果報告書に載りません。
判定と対応の分類の番号を、AIではなく規則で付けているのも意図してのことです。 肥満の有無や治療中かどうかで勧める対応が変わる部分は、施設が決めた基準そのものです。AIに選ばせると、基準がAIの解釈に置き換わります。
02今回想定するシステム構成
健診システム(検査値・判定区分・前回までの値)+問診の回答 │ 検査値がそろった受診者を書き出し ▼【トリガー】毎晩の定時(Azure Functions のタイマー) Azure Functions ── 受診者ごとのまとめ、判定と対応の分類の番号付け ▼ Azure OpenAI(構造化出力)── 文例の選択、値と経年変化の当てはめ │ ① 項目ごとの所見のコメント ② 全体のまとめ │ ③ 保健指導の案内文 ④ 使った文例の番号 ▼ Azure Functions ── 数値の照合、受診を勧める文の有無、禁止語の確認 ▼ 医師の確認の画面(判定と下書きを並べて表示) ▼ 【医師が直して承認】 ├──▶ 結果報告書へ差し込み → 印刷・発送 └──▶ 保健師が案内文を確かめる
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 生成AI | Azure OpenAI(Microsoft Foundry) | Claude API、Gemini API |
| 連携 | Azure Functions(書き出し、まとめ、分類の番号付け、照合、差し込み) | Power Automate |
| 保管 | Azure Blob Storage(入力、下書き、承認の記録) | 健診システムの保管領域 |
| 文例集 | 施設の文例集(文例の番号付き) | 厚生労働省のフィードバック文例集をそのまま使う |
健診システムの判定区分と検査値は、書き換えません。 この構成が書き込むのは、医師が承認したコメントを結果報告書へ差し込むところだけです。判定の付け直しは、いまと同じく医師が健診システムで行います。
Azure OpenAI を選ぶ理由は、構造化出力で JSON スキーマに沿った出力を受けられることです。 公式の説明では、構造化出力は指定した JSON スキーマに従うもので、Chat Completions API と Responses API の両方で使えるとされています。項目ごとのコメントと使った文例の番号を決まった形で受けられるので、後段で数値を照合し、文例から外れていないかを確かめられます。 健診の結果を Azure の中で扱い、契約と権限の管理を一つにまとめられることも理由です。
03どうやって実装するのか
処理の起点を決める
毎晩の定時に、検査値がすべてそろった受診者をまとめて処理します。 結果報告書は受診から数週間で送るものなので、検査値がそろった直後に下書きが出る必要はありません。翌朝、医師が確認の画面を開いたときに、前日までにそろった受診者の下書きが並んでいる状態を目指します。
「すべてそろった」の判定は、健診システムの状態で行います。 外部の検査機関に出した検査や、後から届く画像の読影の結果が残っている受診者は、そろうまで待ちます。一部の項目だけで全体のまとめを書くと、後から届いた所見がまとめに入りません。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 今回の検査値 | 項目のコード、値、単位、施設の基準値 | 健診システム |
| 判定区分 | 項目ごとの判定区分と、全体の総合判定 | 健診システム |
| 前回までの値 | 同じ項目の前回・前々回の値と受診日 | 健診システム |
| 問診の回答 | 服薬(血圧・血糖・脂質)、喫煙、飲酒、運動、既往歴、自覚症状 | 問診の入力端末 |
| 身体計測 | 身長、体重、腹囲、BMI | 健診システム |
| 施設の文例集 | 項目ごと・判定と対応の分類ごとの文例(番号付き) | 健診部で管理(版の番号付き) |
質を決めるのは、施設の文例集です。 厚生労働省のフィードバック文例集は、血圧高値、脂質異常、血糖高値、喫煙、肝機能、尿蛋白などに分かれ、判定と対応の分類ごとに受診者への説明の文例が示されています。たとえば血圧では、収縮期血圧160mmHg以上または拡張期血圧100mmHg以上の場合に、この健診結果を持って至急かかりつけの医療機関を受診するよう勧める文例があります。施設の文例集は、これを土台に、施設の基準値と言い回しに合わせて番号を付けたものにします。
文例集の利用上の留意事項も、そのまま設計に入れます。 文例集では、各検査項目の経年変化を確認して悪化傾向か改善傾向かを踏まえること、複数の項目に問題がある場合は文例を組み合わせて重複を除くこと、文例は改変してよいが記載されている科学的根拠から逸脱しないことが示されています。第7章の指示は、この3つをAIへの指示に置き換えたものです。
データの取得方法を決める
| 取るもの | どこから | どうやって |
|---|---|---|
| 検査値・判定・前回までの値 | 健診システム | 書き出しの機能か、データベースの読み取り用のビュー(方式は健診システムの仕様による) |
| 問診の回答 | 問診の入力端末 | 健診システムに取り込まれた回答を同じ経路で読む |
| 文例集 | 健診部の管理する保管場所 | 版の番号付きで読む |
健診システムからの書き出しの方式は、製品によって違います。 この部分は、利用している健診システムに応じた個別の実装になります。
項目は、名前ではなくコードで受け取ります。 厚生労働省のプログラムの別紙5では、検査項目のコードにJLAC10のコードを用いるとされ、同じ収縮期血圧や空腹時中性脂肪でも、検査法ごとに別のコードが並んでいます。健診システムがJLAC10のコードで値を持っていれば、文例集の項目とコードで対応させられます。 施設の独自のコードで持っている場合は、最初に対応表を作ります。
前回までの値は、項目のコードでそろえて取ります。 検査法が変わった項目は、同じ名前でもコードが違うことがあります。コードが違う値を前回の値として並べると、経年変化のコメントが誤ります。
AIへ渡す前に整形する
- 判定と対応の分類の番号付け … 項目ごとに、施設の基準値・肥満の有無(腹囲とBMI)・服薬の有無から、文例集の分類の番号を規則で決めます
- 経年変化の計算 … 前回との差と、悪化・改善・変化なしの区分をプログラムで計算します。AIに引き算をさせません
- 治療中の印 … 問診で血圧・血糖・脂質の薬を飲んでいると答えた受診者に、項目ごとの治療中の印を付けます
- 使わない項目の除外 … 判定区分が「異常なし」の項目は、コメントの対象から外します。全体のまとめには「その他の項目は基準の範囲内」とだけ書かせます
- 氏名などを渡さない … 受診者の氏名・住所・事業所名は外し、受診の番号だけを付けます。コメントの文章に氏名は要りません
- 単位と桁の統一 … 単位を文例集の表記(mg/dL、mmHg、%)にそろえ、表示する桁を項目ごとに決めます。AIが桁を丸めないよう、表示用の文字列にしてから渡します
- 版の記録 … 使った文例集と基準値の版の番号を、受診者ごとに記録します
1番目と2番目を、AIに任せないでください。 血糖の文例は、肥満者か非肥満者か、糖尿病の治療中か未治療かで分類が分かれています。どの分類に当たるかは基準の問題で、文章の問題ではありません。経年変化も、数値の差はプログラムが出し、AIはその結果を文章にするだけにします。
AIに処理させる
させるのは、分類の番号に合う文例を選び、受診者の値と経年変化を当てはめ、複数の項目を重複なくまとめることです。
| 見るもの | させること | 判断できないときの扱い |
|---|---|---|
| 所見のある項目 | 分類の番号に合う文例を選び、値と経年変化を当てはめる | 合う文例が無ければ no_template として空にする |
| 複数の項目の所見 | 文例を組み合わせ、重複する言い回しを除いて全体のまとめにする | 組み合わせられなければ項目ごとの文を並べる |
| 経年変化 | 前処理の区分(悪化・改善・変化なし)を文章にする | 前回の値が無ければ書かない |
| 保健指導の案内文 | 特定保健指導の対象の印がある受診者に、施設の案内文の文例で書く | 印が無ければ書かない |
| 生活習慣の助言 | 問診の回答(喫煙、飲酒、運動)に合う文例を添える | 回答が無ければ書かない |
経年変化の書き方は、たとえば次のようになります。 前処理が「LDLコレステロール 今回152、前回138、悪化」と渡し、AIは選んだ文例の前に「前回の138mg/dLから152mg/dLに上がっています」と添えます。数字はどちらも渡した文字列のままで、差の14はAIに書かせません。
一番上の行の右端が、この構成でいちばん大事な扱いです。 合う文例が無いとき、AIは自分の言葉で説明を書こうとします。文例に無い説明は、科学的根拠を誰も確かめていない文章です。 空にして、医師が書く欄として確認の画面に出します。
| させないこと | 理由 |
|---|---|
| 判定区分の変更や、判定より強い・弱い勧め方 | 判定は施設の基準と医師が決める |
| 病名の断定(「糖尿病です」など) | 健診の結果は診断ではない。文例の言い回しにとどめる |
| 薬の開始・中止・変更の助言 | 治療中の受診者の薬は主治医の判断 |
| 数値の計算(差、比率、換算) | 前処理で計算した値だけを使う |
| 問診に無い生活習慣の推測 | 「飲酒量が多いと思われます」のように書かない |
3行目がいちばん起きやすい失敗です。 治療中の受診者で値が高いと、AIは「薬の調整について主治医に相談を」と書きます。言い回しは穏やかでも、文例の範囲を出ています。 文例集にある治療中の文例を選ばせ、それ以外の助言は書かせません。
指示内容を固定する
あなたは健診センターで、結果報告書の所見のコメントの下書きを作る担当です。
渡された検査の情報と施設の文例集だけを使って書いてください。推測で補わないでください。
書いた下書きは、必ず医師が確認してから受診者に届きます。
【書くこと】
1. items: 所見のある項目ごとに、分類の番号に合う文例を文例集から1つ選び、
template_id に番号を入れ、文例の「{値}」「{前回値}」「{変化}」に渡された値を当てはめる。
2. summary: 複数の項目に所見があるとき、items の文を組み合わせ、重複する言い回しを除いてまとめる。
3. guidance_letter: tokutei_target が true のときだけ、案内文の文例で書く。
4. lifestyle: 問診の回答に合う生活習慣の文例があれば添える。
【厳守事項】
- 文例の医学的な説明を書き換えたり、文例に無い説明を足したりしないでください。
言い回しを整えるのは、つなぎの言葉と語順だけにしてください。
- 合う文例が無い項目は、template_id を no_template にし、text を空にしてください。
自分の言葉で説明を書かないでください。
- 判定区分より強い勧め方(「至急」など)も、弱い勧め方もしないでください。
分類の番号に対応する文例の勧め方をそのまま使ってください。
- 値は渡された value と prev_value だけを使ってください。計算しないでください。
変化は渡された trend(悪化・改善・変化なし)だけを文章にしてください。
- 病名を断定しないでください。薬の開始・中止・変更について書かないでください。
- 問診に回答が無い生活習慣について書かないでください。
- 受診者の氏名や事業所名は書かないでください。
【文例集(版:{template_version})】{templates}
【受診者の検査の情報】{exam}
【問診の回答】{questionnaire}
【特定保健指導の対象】{tokutei_target}
「文例に無い説明を足さない」と「合う文例が無ければ空にする」を両方書いているのは、片方だけでは足りないからです。 足すなと言うだけだと、合う文例が無い項目で近い文例を無理に当てはめます。空にしてよいと明示することで、医師に回すべき項目が見えるようになります。
「判定区分より強い勧め方をしない」も入れています。 AIは安全側に倒そうとして「念のため至急受診を」と書きがちです。至急でない受診者に至急と書いた結果報告書は、受診者を不安にさせ、医療機関の窓口にも負担をかけます。
出力形式を固定する
次の形のJSONを、構造化出力のスキーマで受け取ります。
{
"exam_id": "",
"template_version": "",
"items": [
{ "item_code": "", "category_no": "", "template_id": "",
"text": "", "values_cited": [""] }
],
"summary": "",
"lifestyle": [ { "template_id": "", "text": "" } ],
"guidance_letter": ""
}
公式の説明では、構造化出力ではすべてのフィールドを必須にし、オブジェクトには additionalProperties: false を設定する必要があり、最大100個のオブジェクトのプロパティと最大5段の入れ子が持てるとされています。項目は items の配列の要素として並べるので、人間ドックの項目数でも上限に当たりません。
1つ目の理由は、数値をプログラムで照合できることです。 values_cited に、文に書いた値を書き出させます。Azure Functions が、その値が今回の値か前回の値として渡したものに含まれるかを確かめ、text の中の数字の並びとも突き合わせます。 一致しないものは確認の画面で赤く示します。
2つ目は、文例から外れていないかを確かめられることです。 template_id が文例集に存在するか、category_no と文例の分類が合っているかをプログラムで見ます。分類が合わない文例を選んでいれば、勧め方が判定とずれています。
3つ目は、受診を勧めるべき項目の抜けを確かめられることです。 受診勧奨判定値を超えた項目について、items に要素があり、text が空でないかを見ます。
血圧の項目なら、受け取る要素はたとえば次のようになります。
{ "item_code": "SBP", "category_no": "BP-1", "template_id": "BP-1-a",
"text": "今回、収縮期血圧が164mmHgでした。前回の150mmHgから上がっています。(以下、文例BP-1-aの本文)",
"values_cited": ["164", "150"] }
category_no は前処理が付けた分類、template_id はAIが選んだ文例です。BP-1 の分類に BP-2 の文例が選ばれていれば、勧め方が判定より弱いということなので、照合で止めます。
| 下書きの状態 | 条件 |
|---|---|
ready | 数値の照合と文例の照合がすべて通り、no_template が無い |
review | no_template が1つ以上、または照合が通らない項目がある |
hold | 受診勧奨判定値を超えた項目のコメントが空、または緊急の連絡の対象の印がある |
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 健診システム | 書き出しか読み取り用のビュー(製品の仕様による) | 検査値、判定、前回までの値、問診 |
| Azure OpenAI | Chat Completions API(構造化出力) | 文例の選択と当てはめ |
| 医師の確認の画面 | Azure Functions が書き込む | 判定と下書きを並べ、照合の結果を色で示す |
| 健診システム(結果報告書) | 差し込みの機能(製品の仕様による) | 承認されたコメントだけを差し込む |
健診システムの判定と検査値には、書き込みません。 結果報告書へ差し込むのは、医師が承認したコメントだけです。承認の前の下書きが印刷の対象に入らないよう、差し込みの条件に承認の記録を必須にします。
人が確認する
holdを最初に見る … 受診を勧めるべき項目のコメントが空になっている受診者です。医師が書きますreviewを見る …no_templateの項目は医師が書き、赤く示された数値は検査値と照らして直しますreadyを読んで承認する … 判定と下書きを並べて読み、勧め方が受診者の状況に合っているかを確かめます- 保健師が案内文を見る … 特定保健指導の案内文の日程や方法の記載を確かめます
- 直したら記録する … どの項目の、どの文例を、どう直したかを残します
確認の画面は、左に判定と検査値、右に下書きを並べます。 下書きの各文には使った文例の番号を小さく表示し、照合で一致しなかった数値は赤、no_template の項目は空欄の入力欄として出します。医師が見る場所を、色と空欄で先に示しておくことが、1件2分に収める工夫です。
3番目の「状況に合っているか」が、医師にしかできない確認です。 文例は分類ごとの一般的な文章です。既往歴や他の所見から、文例より強く勧めるべき受診者もいます。 そのときは医師が書き足します。
目標は、3,000件をならして1件2分です。 所見の無い受診者は数十秒、review の受診者は数分かかります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 緊急の連絡が要る値(施設の基準) | この流れに乗せない。 検査部門と医師が当日に電話で連絡する(いまの手順のまま)。下書きは hold |
| 検査値の一部が後から届く | そろうまで処理しない。そろった晩に処理する |
| 前回の値の検査法が違う | 項目のコードが違えば前回の値として渡さない |
| 問診の回答が無い | 治療中の印が付けられない。分類の番号を「治療状況不明」にし、review にする |
| 文例集に無い所見(画像の読影の所見など) | no_template。医師が書く |
| 文例集が改定された | 改定日以降に処理する受診者から新しい版を使い、版の番号を記録する |
| 受診者から結果報告書の内容について問い合わせ | 承認した医師の名前と、使った文例の番号から答える |
1行目は、この構成の外で決まっている手順を前提にしています。 すぐに受診してもらう必要のある値は、結果報告書を待たずに連絡するのが健診機関の手順です。この構成は、その手順を置き換えません。
記録を残す
- 受診の番号ごとの入力(検査値、判定、前回までの値、問診、分類の番号)
- 使った文例集と基準値の版
- Azure OpenAI に渡した入力と、返ってきたJSONの全文
- 数値と文例の照合の結果、下書きの状態
- 医師が直した記録 … どの項目の、どの文例を、どう直したか。承認した医師と日時
- 結果報告書に差し込んだコメントの最終版
5つ目が、文例集を直す材料になります。 特定の文例で直しが多ければ、文例の言い回しか分類の切り方が施設の実際と合っていません。直しの多い文例から、健診部の会議で見直します。
04実装レベルの3段階
半自動化で、1件5分が3分程度になります。 下書きは出ますが、数値の見直しと、一覧から健診システムへ写す作業が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、数値の照合と転記が、1人ずつの手作業だからです。
05工数削減シミュレーション
導入後 3,000件 × 2分 ÷ 60 = 100 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 事業所健診・特定健診・人間ドックを合わせて月に数千人を受け入れ、結果報告書の所見のコメントを医師や保健師が受診者ごとに書いている健診センター・病院の健診部門。判定区分を健診システムが基準値から機械的に付けており、前回までの値を同じシステムから取り出せる場合。所見のコメントの文例集を施設で持っているか、作る準備ができる場合。Azure を使っている場合。
- 判定区分を医師が受診者ごとに手で付けており、基準が文書になっていない場合。受診者が月に数百人で、コメントの作成が負担になっていない場合。結果報告書のコメントを定型文の選択だけで済ませており、受診者ごとの文章を書いていない場合。なお、所見の医学的な判断と、受診や治療を勧めるかの最終的な判断はこの構成では代替できません。
07最小構成で試す方法
- 先月の受診者から30人を選ぶ(所見の無い人、1項目だけの人、複数の項目に所見がある人、治療中の人を混ぜる)
- 氏名を外し、検査値・判定・前回値・問診を表にまとめる
- 施設の文例集(無ければ厚生労働省のフィードバック文例集)と第7章の指示を使い、Azure OpenAI の画面で1人ずつ下書きを作らせる
- 出てきた下書きを、当時医師が書いたコメントと並べて読む
- 文例から外れた説明と、数値の誤りに印を付ける
30人は必ずやってください。 文章の上手さより先に、文例から外れた説明を足していないかを見ます。この段階では分類の番号も手で付けます。30人分の分類を手で付けてみると、施設の基準のどこが文書になっていないかが分かります。
| 出てきた内容 | 判断 |
|---|---|
| 文例に沿った下書きが出て、当時のコメントと勧め方が同じ | 自動の処理に進む |
| 文例に無い説明を足した | 指示の「空にする」を強める。構成は有効 |
| 当時の医師ごとのコメントで勧め方がばらばら | 文例集と分類の決め方が先。 AIの問題ではない |
3行目は、多くの施設で出ます。 第3章の(b)のぶれが、30人の中で見えたということです。どの分類にどの文例を使うかを医師の間で決めることが、この構成のいちばんの準備になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 合う文例が無い項目で、AIが自分の言葉で説明を書く | 空にしてよいと明示する。 no_template を医師の欄にする |
| 「念のため至急」と強めの勧め方になる | 分類の番号に対応する文例の勧め方だけを使わせる |
| 治療中の受診者に薬の助言を書く | 治療中の文例だけを選ばせ、薬について書かせない |
| 経年変化をAIが計算して誤る | 差と区分は前処理で計算して渡す |
| 前回の値の検査法が違う | 項目のコードでそろえ、違えば渡さない |
| 一部の結果が後から届き、まとめから漏れる | すべてそろうまで処理しない |
| 数値の書き写しの誤り | values_cited と検査値を照合する |
| 確認が流し読みになる | 承認の記録を差し込みの条件にし、review を先に見る順にする |
| 単位や桁が文例と食い違う | 前処理で表示用の文字列にそろえてから渡す |
| 施設独自の項目のコードで文例と結べない | JLAC10のコードとの対応表を最初に作る |
| 緊急の連絡が要る受診者が下書きの列に並ぶ | hold にし、いまの電話の手順を優先する |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIが「より丁寧に」「より安全に」書こうとすることで起きます。丁寧な文章ほど、文例の範囲を出たことに気づきにくくなります。 文例の番号と分類の照合を、文章の読みやすさより先に見ます。
下の2行は、AIの問題ではありません。 健診システムのデータの持ち方の問題で、ここが整っていないと、文例と結べない項目がすべて no_template になり、医師の手間が減りません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 健診の検査値と判定、前回までの値、問診の回答(服薬、既往歴、喫煙、飲酒)です。健康診断その他の検査の結果は、個人情報保護法施行令で要配慮個人情報の記述等の一つとされています。
- 氏名と事業所名を渡さない … コメントの文章に要らない情報は、受診の番号に置き換えてからAIに渡します
- 処理の地域を決める … 公式の説明では、プロンプトと応答は顧客が指定した地域の中で処理され、Global や DataZone のデプロイの種類ではそれぞれの範囲で処理されうるとされています。日本の地域の標準のデプロイを選びます
- 学習への利用と不正利用の監視を確かめる … 公式の説明では、プロンプトと応答は他の顧客や OpenAI に提供されず、基盤モデルの学習に使われないとされています。一方で、不正利用の監視で兆候が検知されると、プロンプトと応答の一部が確認の対象になり、必要に応じて人が確認するとされています。健診の結果を扱うので、監視の扱いの変更を申請できる条件に当たるかを確かめます
- 履歴を残す機能を使わない … Responses API は会話の履歴を保存する機能とされています。受診者ごとに完結する処理なので Chat Completions API を使います
- 医師の承認なしに結果報告書へ載せない … 所見のコメントは、受診者が受診するかを決める材料です。承認の記録を差し込みの条件にします
- 事業所への提供の範囲を変えない … 事業所健診で会社に渡す範囲は、いまの契約と同意のとおりです。AIの下書きを作ることで、会社に渡す情報を増やさないでください
誤りが起きた場合のリスクは、受診を勧めるべき人に勧めないことと、勧める必要のない人に強く勧めることの2つです。 前者は受診勧奨の項目のコメントが空になることで、後者はAIが安全側に強めて書くことで起きます。どちらも、分類の番号を規則で付け、文例と照合し、医師が承認することで防ぎます。
10まず何から始めるか
1週目:文例集に番号を付ける
施設の文例集(無ければ厚生労働省のフィードバック文例集)を、項目と判定と対応の分類ごとに番号を付けて並べ直します。 医師の間で、どの分類にどの文例を使うかを確かめます。
2週目:30人で試す
先月の受診者から30人を選び、氏名を外して下書きを作らせます。当時のコメントと並べ、文例から外れた説明を足していないかを最優先で見ます。
3週目:分類の番号付けを規則にする
施設の基準値、肥満の有無、服薬の有無から分類の番号を決める規則を書き起こします。健診システムからの書き出しの方式と、結果報告書への差し込みの方式を確かめます。 Azure の処理の地域と、不正利用の監視の扱いを決めます。
4週目:毎晩の処理をつなぐ
そろった受診者の書き出し、分類の番号付け、下書きの作成までをつなぎ、一覧に書き出します。 この時点では結果報告書に差し込まず、医師がいまのやり方でコメントを書く横で下書きを読み比べます。
2か月目: 数値と文例の照合と、医師の確認の画面を足します。review と hold の件数を毎週数えます。3か月目以降: 結果報告書への差し込みをつなぎ、1件5分が何分になったかを実測します。医師の直しが文例集の見直しに戻り、直す件数が減ってきた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 標準的な健診・保健指導プログラム(令和6年度版)が、編・章と別紙ごとに掲載されていること。第2編別紙5・別添資料にフィードバック文例集等が含まれること | 厚生労働省: 標準的な健診・保健指導プログラム(令和6年度版) | 2026-10-14 |
| 健診検査項目の保健指導判定値と受診勧奨判定値(収縮期血圧130・140mmHg、HbA1c 5.6・6.5%など)。受診勧奨判定値を超える場合にフィードバック文例集を参照すること。文例集が血圧高値・脂質異常・血糖高値・喫煙・肝機能・尿蛋白などに分かれ、判定と対応の分類ごとに説明の文例があること。収縮期血圧160mmHg以上または拡張期血圧100mmHg以上で至急の受診を勧める文例。血糖の分類が肥満者・非肥満者と治療中・未治療で分かれること。経年変化を確認すること、複数項目は文例を組み合わせて重複を除くこと、科学的根拠から逸脱しないこと | 厚生労働省: 同プログラム 第2編別紙5・別添資料(フィードバック文例集等) | 2026-10-14 |
| 医師等により行われた疾病の予防及び早期発見のための健康診断その他の検査の結果が、要配慮個人情報の記述等とされていること(第2条) | e-Gov 法令API: 個人情報の保護に関する法律施行令 | 2026-10-14 |
構造化出力が指定した JSON スキーマに従い、Chat Completions API と Responses API の両方で使えること。すべてのフィールドを必須にし additionalProperties: false を設定すること。最大100個のオブジェクトのプロパティと最大5段の入れ子 | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-14 |
| プロンプトと応答が他の顧客や OpenAI に提供されず、基盤モデルの学習に使われないこと。プロンプトと応答は顧客が指定した地域で処理され、Global と DataZone のデプロイではそれぞれの範囲で処理されうること。Responses API が会話の履歴を保存すること。不正利用の監視で、兆候が検知されるとプロンプトと応答の一部が確認の対象になり、必要に応じて人が確認すること。監視の扱いの変更を申請できること | Microsoft Learn: Data, privacy, and security for Foundry Models sold by Azure | 2026-10-14 |
判定の基準値、文例の医学的な内容、受診を勧めるかの判断は、施設の医師が決めてください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。判定区分の名称と基準値は、施設によって異なります。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1587)についてのご相談はこちらから。
