介護職員が手書きするバイタルと食事・排泄のチェック表を読み取り、介護記録へ転記して、基準を外れた値を看護職員に知らせる
介護職員が居室や食堂で手書きするバイタルと食事・排泄のチェック表をスキャンし、利用者ごとの値として読み取って介護記録へ転記します。利用者ごとに決めた基準を外れた値は、看護職員へ知らせます。
- 生成AI
- Azure OpenAI Service/Claude/Gemini
- AIサービス
- Azure AI/Google Document AI
- 連携・自動化
- Make/Power Automate
- 対象業界
- 介護/医療
- 対象部門
- 品質管理
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 人手が足りない/入力作業が多い/期限・対応漏れが起きる
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/対応スピード向上/工数削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 介護職員が居室と食堂を回り、測った値と摂取量、排泄の様子をチェック表に書き込む
- 気になる値があった職員は、その場で看護職員を探して口頭で伝える
- 勤務の終わりに、ユニットの担当者がチェック表を持って記録用のパソコンの前に座る
- 利用者を1人ずつ開き、バイタル、食事量、水分量、排泄を介護記録ソフトに打ち込む
- 打ち込みながら空欄に気づいたら、書いた職員に聞きに行くか、メモを残す
- 看護職員から言われている「気をつける利用者」の値を見返し、外れていれば看護職員に伝える
- チェック表はユニットの棚に綴じて保管する
- 人介護職員がこれまでどおりチェック表に書き込む(書式は施設で決めた新しい様式)
- 人朝のバイタルと昼食の記入が終わった時点と、勤務の終わりの2回、ユニットの職員が表を複合機でスキャンする
- 自動SharePoint の受付用フォルダにファイルが入ったことをきっかけに、ワークフローが動く
- 自動OCRが表の構造、セルごとの文字、手書きかどうか、読み取りの信頼度を返す
- 自動生成AIが、表のセルを利用者・項目・時間帯ごとの値にそろえ、欄ごとに `filled` / `blank` / `not_measured` / `unreadable` を付ける
- 自動値の形と範囲(体温は数値か、血圧は上と下に分かれるか)を規則で確かめる
- 自動利用者ごとの基準の一覧と照合し、基準を外れた値と、続けて見守る条件(便が出ていない日数など)に当たった利用者を出す
- 自動基準を外れた値は、ユニット名・利用者・値・基準を添えて看護職員の Teams のチャネルに知らせる
- 人ユニットの職員が確認画面で `unreadable` と `blank` の欄だけを見て、正しい値を入れるか空欄のままと確定する
- 【人/自動】 確定した値を介護記録ソフトへ取り込む
- 人看護職員が知らせを見て、必要なら利用者のもとへ行き、対応を記録する
各工程の詳しい説明を読む
- 介護職員が居室と食堂を回り、測った値と摂取量、排泄の様子をチェック表に書き込む
- 気になる値があった職員は、その場で看護職員を探して口頭で伝える
- 勤務の終わりに、ユニットの担当者がチェック表を持って記録用のパソコンの前に座る
- 利用者を1人ずつ開き、バイタル、食事量、水分量、排泄を介護記録ソフトに打ち込む
- 打ち込みながら空欄に気づいたら、書いた職員に聞きに行くか、メモを残す
- 看護職員から言われている「気をつける利用者」の値を見返し、外れていれば看護職員に伝える
- チェック表はユニットの棚に綴じて保管する
(a)転記が勤務の最後に残る。 1枚に10名分、1名あたり20前後の欄があり、1日1枚でも打ち込みには10分近くかかります。 夕方は食事と就寝の介助が重なる時間帯で、転記は後回しになりやすく、翌日の担当者が前日の表をまとめて打ち込む日もあります。
(b)基準を外れた値が、表の上で止まる。 2番目の口頭の報告は、測った職員が気になったときだけ行われます。新しく入った職員は、その利用者にとって何が高い値なのかを知りません。 37.4℃は一般には平熱の範囲でも、平熱が35℃台の利用者にとっては気にかける値です。それを知っている職員が測ったときしか、看護職員に届きません。
(c)書き漏れは、転記のときにしか分からない。 夕の血圧の欄が空いていても、気づくのは数時間後で、測り直すには遅く、「未測定」とだけ記録されます。
- 【人】 介護職員がこれまでどおりチェック表に書き込む(書式は施設で決めた新しい様式)
- 【人】 朝のバイタルと昼食の記入が終わった時点と、勤務の終わりの2回、ユニットの職員が表を複合機でスキャンする
- 【自動】 SharePoint の受付用フォルダにファイルが入ったことをきっかけに、ワークフローが動く
- 【自動】 OCRが表の構造、セルごとの文字、手書きかどうか、読み取りの信頼度を返す
- 【自動】 生成AIが、表のセルを利用者・項目・時間帯ごとの値にそろえ、欄ごとに
filled/blank/not_measured/unreadableを付ける - 【自動】 値の形と範囲(体温は数値か、血圧は上と下に分かれるか)を規則で確かめる
- 【自動】 利用者ごとの基準の一覧と照合し、基準を外れた値と、続けて見守る条件(便が出ていない日数など)に当たった利用者を出す
- 【自動】 基準を外れた値は、ユニット名・利用者・値・基準を添えて看護職員の Teams のチャネルに知らせる
- 【人】 ユニットの職員が確認画面で
unreadableとblankの欄だけを見て、正しい値を入れるか空欄のままと確定する - 【人/自動】 確定した値を介護記録ソフトへ取り込む
- 【人】 看護職員が知らせを見て、必要なら利用者のもとへ行き、対応を記録する
2番目でスキャンを2回にしているのが、この設計の分かれ目です。 勤務の終わりの1回だけでは、朝に測った値が看護職員に届くのは夕方になります。昼の時点で一度読み取れば、朝の値は昼過ぎには届きます。
7番目を規則にしているのは、 基準が利用者の状態に合わせて見直されるためです。一覧を直すだけで判定が変わります。
02今回想定するシステム構成
手書きのチェック表(ユニットごとに1日1枚) │ 昼と勤務の終わりに複合機でスキャン ▼【トリガー】SharePoint の受付用フォルダへの保存 Power Automate ├──▶ ファイル名からユニットと日付を取る/形式・ページ数の確認 ▼ Azure AI Document Intelligence(レイアウトモデル) │ 表のセル、文字、手書きかどうか、信頼度を返す ▼ Azure OpenAI(構造化出力) │ セルを 利用者 × 項目 × 時間帯 の値にそろえる │ filled / blank / not_measured / unreadable を付ける ▼ Power Automate ├──▶ 値の形と範囲の確認(規則) ├──▶ 利用者ごとの基準の一覧と照合(規則) │ └──▶ 基準外 → Teams で看護職員へ ▼ 確認画面(SharePoint のリスト)── ユニットの職員が unreadable と blank だけを見る ▼ 介護記録ソフトへの取り込み
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | Azure AI Document Intelligence(レイアウトモデル) | Google Document AI(Form Parser) |
| 生成AI | Azure OpenAI(Microsoft Foundry)(表のセルを利用者・項目・時間帯の値にそろえる) | Claude API、Gemini API |
| 連携 | Power Automate(SharePoint のトリガー、規則による照合、Teams への通知) | Azure Logic Apps、Make |
| 保管 | SharePoint(受付用フォルダ、処理済みフォルダ、確認用のリスト、基準の一覧) | Azure Blob Storage |
| 通知 | Microsoft Teams(看護職員のチャネル) | 施設で使っている連絡用のチャット |
介護記録ソフトと複合機は、新しく足すものではありません。 足すのは、OCRと生成AIのAPI、それをつなぐ Power Automate のフロー、SharePoint の確認用のリストと基準の一覧です。
土台になるのは、Azure AI Document Intelligence のレイアウトモデルです。 テキスト、テーブル、選択マーク(チェックボックスなど)、ドキュメントの構造を抽出するモデルで、手書きのテキストの対応言語に日本語が含まれています。 応答には、各行が手書きのスタイルかどうかが信頼度と一緒に入り、単語ごとにも信頼度が付きます。
表はセルの単位で返ってきます。 各セルに行と列の番号が付くので、書式を固定しておけば、セルの位置から利用者と項目を決められます。
入力はPDFと画像で、 ファイルサイズは有料(S0)レベルで500MBまでとされています。1日1枚の表には十分です。
03どうやって実装するのか
処理の起点を決める
SharePoint の受付用フォルダにファイルが作成されたことを起点にします。 Power Automate の SharePoint コネクタのトリガー「ファイルの作成時 (プロパティのみ)」を使います。このトリガーはライブラリの列に格納されたプロパティだけを返すので、続けて「ファイル コンテンツの取得」の手順を置き、返ってきたファイル識別子で中身を取ります。
「フォルダーにファイルが作成されたとき」のトリガーは使いません。 コネクタの説明で非推奨とされており、サブフォルダーに追加されたファイルでは起動しないとされています。ユニットごとにフォルダを分けたくなりますが、受付用は1つのライブラリにまとめ、ユニットはファイル名か列で区別します。
スキャンは1日2回です。 1回目は朝のバイタルと昼食の記入が終わった時点、2回目は勤務の終わりです。2回目は1回目の結果を上書きする扱いにし、 値が変わった欄は書き直しとして確認画面に出します。
処理が終わったファイルは、確認用のリストへの書き込みまで成功したときだけ処理済みフォルダへ移します。受付用フォルダに残っている数が、そのまま未処理の数になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| チェック表の画像 | ユニット、日付、利用者10名分のバイタル・食事・水分・排泄の欄 | 受付用フォルダ |
| 読み取り結果 | テーブルのセルと行・列の番号、文字、手書きかどうか、信頼度 | Azure AI Document Intelligence |
| 表の並び | その日のユニットの利用者の並び(利用者ID、氏名、行の番号) | 表を印刷したときに残す一覧 |
| 利用者ごとの基準 | 体温・血圧・脈拍の目安、食事量と排便の見守りの条件、知らせる先 | SharePoint の基準の一覧 |
| 直近の記録 | 過去数日分の食事量と排便の有無 | 確認用のリストの履歴 |
質を決めるのは、3つ目と4つ目です。 表の行と利用者の対応が決まっていなければ、読み取れた値を誰のものにするかが決まりません。チェック表は、介護記録ソフトの利用者一覧から毎日印刷し、そのとき行の並びを一覧として残します。 手で利用者名を書き込む表にすると、名前の読み違いがそのまま記録の取り違えになります。
基準の一覧は、 「Aさんは平熱が35.6℃なので37.0℃以上で知らせる」といった看護職員の取り決めを、利用者ごとの行に書き出したものです。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| ファイルの中身 | SharePoint の「ファイル コンテンツの取得」 | OCRに渡す画像 |
| テーブルのセル | レイアウトモデルの tables の cells | 行・列の番号から利用者と項目を決める |
| 単語ごとの信頼度 | pages の words の confidence | unreadable を付けるかどうかの材料 |
| 手書きかどうか | styles の isHandwritten | 印刷の文字(見出し)と手書きの値を分ける |
| 選択マーク | pages の selectionMarks の state | 排便の有無など、チェックボックスで書く欄 |
| 表の並びと基準 | SharePoint のリスト | 行と利用者の対応、照合の条件 |
チェックボックスの欄は、選択マークとして読みます。 排便の有無を「○」で書かせると文字として読まれ、丸の大きさや線のかすれで迷います。表の側で四角い枠にしておけば、レイアウトモデルが選択マークとして selected / unselected と信頼度を返します。
SharePoint のコネクタには接続ごとに60秒あたり600回の呼び出しの制限があります。過去の表をまとめて読み込むときは、数を区切って流します。
AIへ渡す前に整形する
- ページの確認 … 1ファイル1枚であることを確かめます。複数枚をまとめてスキャンしたものは、ページで分けて1枚ずつ流します
- 形式と寸法の確認 … PDFまたは画像であること、50×50から10,000×10,000ピクセルの間であることを確かめます
- 解像度の確認 … 抽出するテキストの最小の高さは、1024×768の画像で12ピクセルです。150dpiで約8ポイントの文字に当たります。小さい欄に書かれた数字はこの下限に近いので、スキャンは300dpiに固定します
- 向きの確認 … 応答の
angleで回転を確かめ、大きく傾いたものは確認画面に回します - ユニットと日付の確認 … ファイル名と表の見出しが一致するかを見ます。食い違えば止めます(前日の表の取り違えが典型)
- 2回目のスキャンかどうかの確認 … 同じユニット・同じ日付の結果がすでにあれば、上書きの扱いにします
- 表の並びの取り出し … その日・そのユニットの利用者の並びを SharePoint から引きます
3番目を軽く見ないでください。 体温の小数点は表の中でいちばん小さい書き込みで、読めずに「368」と返ると確認画面に出る欄が増えます。
AIに処理させる
させるのは、表のセルを「利用者 × 項目 × 時間帯」の値にそろえ、欄ごとに状態を付けることだけです。 OCRが返すのはセルの位置と文字で、それが「Cさんの夕の上の血圧」であることは知りません。セルの位置と見出しの文字から、その対応を決めるのがAIの役目です。
| 見るもの | させること | 判断できないときの扱い |
|---|---|---|
| 体温 | 数値として写す。「36,8」のような読点は小数点として写し、note に残す | 数字が欠けていれば unreadable |
| 血圧 | 「128/76」を上と下に分けて写す | 片方しか読めなければ両方 unreadable |
| 脈拍 | 数値として写す | 2つの数字が重なっていれば unreadable |
| 主食・副食の摂取量 | 「10」「8」「半分」などを書かれたまま写し、10割の数値に置ける表記だけ数値にする | 置けない表記は数値にせず note に残す |
| 水分量 | ミリリットルの数値として写す | 単位が無く桁がおかしければ unreadable |
| 排尿の回数、排便の有無・性状 | 回数と、選択マークの状態、性状の記号を写す | 選択マークの信頼度が低ければ unreadable |
| 測らなかった理由 | 「拒否」「外泊」「入院」「受診」などの書き込みを not_measured として理由ごと写す | 理由か値か分からなければ unreadable |
分ける材料は、OCRが返した信頼度と、セルに文字があるかどうかです。
| させないこと | 理由 |
|---|---|
| 基準を外れたかどうかの判断 | 利用者ごとに看護職員が決める基準で、規則が照合する |
| 状態の評価(「熱がある」「脱水の疑い」など) | 看護・医療上の判断で、AIの役目ではない |
| 空欄を前後の値から埋めること | 測り忘れという事実が消える |
| 読みにくい数字を、ありそうな値に寄せること | 「38.2」を平熱に寄せて「36.2」とすれば、知らせるべき値が消える |
| 行と利用者の対応を名前の読みで決めること | 表の並びの一覧で決める |
4行目がいちばん起きやすい失敗です。 生成AIは前後の値を見て読みを寄せますが、見つけたいのは、まさにその「いつもと違う値」です。
指示内容を固定する
あなたは介護施設で、手書きのチェック表の読み取り結果を記録用のデータにそろえる担当です。
OCRが返した表のセルと信頼度だけを見て、値を写してください。推測で埋めないでください。
【表の並び】
{row_map} ← 行の番号と利用者ID・氏名の対応。氏名で行を探さず、この対応を使う
【表の見出し】
{header_map} ← 列の番号と項目・時間帯の対応(例: 列3=朝の体温)
【status の選び方】
- filled ......... 値が読み取れている
- blank .......... セルに文字が無い
- not_measured ... 「拒否」「外泊」「入院」「受診」など、測らなかった理由が書かれている
- unreadable ..... 文字はあるが、信頼度が低いか形が崩れていて値として確定できない
迷ったときに filled を選ばないでください。
【厳守事項】
- 値は書かれたとおりに写してください。前後の時間帯や他の利用者の値から、
ありそうな数字に直さないでください。読めない数字は unreadable です。
- 空欄を埋めないでください。前の日や朝の値で補わないでください。
- 血圧は「上/下」を systolic と diastolic に分けてください。
どちらか一方でも読めなければ、両方とも unreadable にしてください。
- 体温の読点(36,8)は小数点として写し、note に「読点を小数点とした」と書いてください。
- 摂取量は、10割に置ける書き方(10、8、半分、全量)だけを数値にし、
それ以外(「少し」「ほぼ」など)は数値にせず note に書いたまま残してください。
- 値が高い・低い、熱がある、脱水の疑いなど、状態の評価を書かないでください。
- 基準を外れているかどうかを書かないでください。
- 行と利用者の対応は【表の並び】だけで決めてください。表の中の氏名の読みで決めないでください。
- evidence には、根拠にしたセルの行・列の番号と、OCRが返した文字をそのまま入れてください。
- confidence は OCR が返した値をそのまま入れてください。
【読み取り結果】{layout_result}
「推測しない」を値の写し方と空欄の2か所に書くのは、 片方だけだと読みにくい数字は寄せる、という動き方をするためです。
「氏名の読みで行を決めない」は取り違えを防ぐためで、行の対応は印刷したときの一覧という機械的な根拠に置きます。
出力形式を固定する
次の形のJSONで受け取ります。 Azure OpenAI の構造化出力で、このスキーマに従わせます。構造化出力は、指定した JSON スキーマに従った応答を返す仕組みで、有効なJSONを返すだけだった JSON モードとは違い、スキーマに厳密に準拠させられます。
{
"sheet": { "unit": "", "date": "", "scan_round": 1 },
"residents": [
{
"row": 1,
"resident_id": "",
"entries": [
{ "item": "temp_morning", "status": "filled | blank | not_measured | unreadable",
"value": "", "reason": "", "note": "", "confidence": 0, "evidence": "" }
]
}
]
}
item は、temp_morning / bp_morning_systolic / bp_morning_diastolic / pulse_morning と夕の同じ項目、meal_main_breakfast / meal_side_breakfast と昼・夕の同じ項目、fluid_ml / urine_count / stool_present / stool_type です。
スキーマの書き方には決まりがあります。 すべてのフィールドを必須にし、省略可能な値は null との共用体型で表します。オブジェクトには常に additionalProperties: false を設定します。オブジェクトのプロパティは最大100個、入れ子は5レベルまでとされているので、項目ごとに列を立てず、entries の配列に並べる形にしています。 10名 × 20前後の項目を1つのオブジェクトに並べると、上限に届きます。
JSONにする理由は、status と基準の照合を別の層に置けることです。 entries はAIが埋め、基準を外れたかどうかはワークフローが規則で決めます。基準が変わっても、直すのは基準の一覧だけです。 evidence があれば、確認画面では画像の該当箇所だけを見れば済みます。
基準の照合は、次の規則で行います。
| 照合 | 知らせる条件の例 |
|---|---|
| 体温 | 利用者ごとの「知らせる体温」以上 |
| 血圧 | 利用者ごとの上の上限・下限、下の上限 |
| 脈拍 | 利用者ごとの上限・下限 |
| 食事量 | 主食が利用者ごとの割合以下の食事が、決めた回数続いた |
| 排便 | 便の無い日が、利用者ごとに決めた日数続いた |
| 共通 | unreadable の値は照合しない。確認画面で確定してから照合する |
数値は施設の看護職員と配置医が利用者ごとに決めるもので、この表は条件の形の例です。 共通の行が大事で、読めなかった値を照合に使わないことで、誤った値で知らせることも、知らせるべき値を流すことも防ぎます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| SharePoint(受付用フォルダ) | Power Automate のトリガー | 「ファイルの作成時 (プロパティのみ)」と「ファイル コンテンツの取得」 |
| Azure AI Document Intelligence | API呼び出し | レイアウトモデルで表・文字・選択マーク・信頼度を返す |
| Azure OpenAI | API呼び出し | 構造化出力で entries を返す |
| SharePoint(確認用のリスト、基準の一覧) | Power Automate のアクション | 値の書き込み、基準の読み取り、履歴の読み取り |
| Microsoft Teams | Power Automate のアクション | 基準を外れた値を看護職員のチャネルへ |
| 介護記録ソフト | 製品のCSV取り込み、またはAPI | 確定した値だけを取り込む |
介護記録ソフトへの取り込みは、製品ごとに方法が違います。 項目の並びと取り込みの手順は利用中の製品で確かめる必要があり、この部分は個別の確認が要ります。 取り込みの経路が無い製品では、確認画面を記録ソフトの画面と同じ並びにして、人が見ながら入力する形にとどめます。
取り込むのは、確認画面で確定した値だけです。 読み取りの直後に書き込むと、読み違いがそのまま公式の記録になります。一方、Teams への知らせは確定を待ちません。 基準を外れた filled の値は読み取りの直後に「未確定」と書いて知らせ、画像の該当箇所へのリンクを添えます。
人が確認する
ユニットの職員が見るのは、unreadable と blank の欄だけです。 filled の欄は一覧で流し見て終わりにします。全部の欄を見直す設計にすると、打ち込みの時間が見直しの時間に置き換わるだけです。
unreadableを確定する … 画像の該当箇所を見て、正しい値を入れるか、本当に読めなければ書いた職員に聞きますblankを確定する … 測り忘れなら「未測定」として確定し、まだ間に合う時間なら測り直します- 書き直しの欄を見る … 1回目と2回目で値が変わった欄を確かめます
- 確定して取り込む … 確認画面で確定ボタンを押すと、介護記録ソフトへの取り込みに回ります
看護職員が見るのは、Teams の知らせです。 利用者のもとへ行くかどうかは看護職員が決め、対応したかを返信で残すと次の勤務へ引き継げます。 昼の時点で空欄が分かれば、その日のうちに測り直せるのも2回スキャンの効果です。
目標は、1枚あたり4分です。 表1枚の約200欄のうち、unreadable と blank が十数欄という想定です。それより多い日は、スキャンの解像度か、表の書式を見直すべきです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 1ファイルに何枚も入っている | ページで分割して再投入。分割できないものは確認画面へ |
| ファイル名と表の見出しのユニット・日付が合わない | どちらも採らずに確認画面へ。前日の表の取り違えを疑う |
| 表の並びの一覧が無い(印刷していない日の表) | 行と利用者を対応させずに止め、ユニットの職員へ |
| 文字が小さすぎる | 1024×768の画像で12ピクセルが下限。下回る欄は unreadable で人へ |
| 値の範囲がありえない(体温が「368」など) | 規則で止め、unreadable に落として人へ |
| 生成AIの応答がスキーマに合わない | 再試行し、続けば読み取り結果だけを確認画面に出す |
| OCRや生成AIが応答しない | 受付用フォルダに残す。処理済みへ移すのは成功時だけ |
| 入退所や入院で利用者の並びが変わった | 当日の表を印刷し直す。古い表で読んだものは並びが合わないので止める |
上から3行目が、この構成でいちばん重い例外です。 行と利用者の対応が取れないまま値を書き込むと、別の利用者の記録に体温が入ります。 対応が取れないときは、値を読み取れていても止めます。
記録を残す
- スキャンした画像と、受け取った日時、ユニット、日付、何回目のスキャンか
- OCRが返したJSONの全文(セル、単語の信頼度、手書きかどうか、選択マーク)
- 生成AIが返した
entriesの全文と、そのとき使った表の並びの一覧 - 確認画面で人が直した記録 … どの欄を、何から何に変えたか、誰が確定したか
- 基準の照合の結果と、そのとき使った基準の一覧の内容
- Teams に知らせた日時、看護職員の返信
- 介護記録ソフトへ取り込んだ日時と件数
5つ目で「そのときの基準」を残すのは、基準が後から変わるためです。 利用者の状態が変わって基準を直すと、過去の知らせが妥当だったかを後から確かめられなくなります。
4つ目は改善の材料です。 特定の欄がいつも直されているなら、書式を変えるほうが指示を直すより効きます。
04実装レベルの3段階
最小構成では、1日10枚はさばけません。 確かめるための段階です。氏名を伏せる手間もかかります。 半自動化で、1枚14分が7分程度になります。 読み取りは自動になりますが、確認画面の値を介護記録ソフトへ入れる作業と、気をつける利用者の値の見返しが残ります。本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、基準との照合と取り込みが、利用者1人ずつの手作業だからです。 段階を飛ばさないでください。 半自動化を1か月使うと、unreadable が多い欄と書式の弱いところが分かります。そこを直してから基準の照合を足すほうが、誤った知らせが減ります。
05工数削減シミュレーション
導入後 300件 × 4分 ÷ 60 = 20 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 居室や食堂では紙のチェック表に手で書き、勤務の終わりにまとめて介護記録ソフトへ打ち直している特別養護老人ホーム、介護老人保健施設、有料老人ホームなど。ユニットやフロアごとに1日1枚の表を使っていて、書式を施設で決められる場合。利用者ごとの体温・血圧・脈拍の目安や、食事量・排便の見守りの基準を看護職員が持っている場合。
- 職員がタブレットやスマートフォンでその場で介護記録ソフトに入力できており、紙を使っていない施設。利用者が十数名で、転記が1日数分で終わる場合。なお、基準を外れた値が出たときに受診や様子見をどう判断するかという看護・医療上の判断は、この構成では代替できません。急変時の報告もこの仕組みには載せません。
07最小構成で試す方法
- 先週のチェック表から、2つのユニットの7日分、合わせて14枚を選ぶ(空欄や「拒否」の書き込みがある日を入れる)
- その14枚が介護記録ソフトにどう入力されたかを書き出しておく
- 14枚をスキャンし、社内で利用が認められている生成AIの画面に1枚ずつ渡す(利用者の氏名は伏せた画像にする)
- 「この表を、行ごと・欄ごとの値に写してください。読めない数字は『読めない』とし、空欄は空欄のままにしてください。前後の値から推測しないでください。血圧は上と下に分けてください」と指示する
- 出てきた値を、2で書き出した入力と突き合わせる
14枚は必ずやってください。 ワークフローを組む前に、自施設の表と自施設の職員の字で、どこまで読めるのかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 入力とほぼ同じ値が出た | OCRとワークフローの連携に進む |
| 空欄を前後の値で埋めた | 指示の書き方で直る。構成は有効 |
| 体温の小数点や血圧の区切りが読めない欄が多い | 表の書式とスキャンの設定が先。 AIの問題ではない |
3行目が出たら、 体温の整数部を印刷する、血圧を2マスに分けると書式を変えて、どこまで変わるかを見てください。 書式の効果は、指示の工夫より大きく出ます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 読みにくい数字を、ありそうな値に寄せて写す | 前後の値から直すことを禁じる。 範囲の確認で外れた値は人へ |
| 空欄を前の時間帯の値で埋める | 指示に明記し、blank の数が急に減った日を疑う |
| 行と利用者がずれる | 表の並びの一覧で決める。 氏名の読みで決めない |
| 体温の小数点が読めない | 整数部を印刷した書式にし、スキャンを300dpiに固定する |
| 血圧の区切りが読めない | 上と下を2マスに分けた書式にする |
| 排便の「○」が読み分けられない | 四角いチェックボックスにして、選択マークとして読む |
| 古いトリガーを使って、サブフォルダーで起動しない | 「ファイルの作成時 (プロパティのみ)」を使い、フォルダを分けない |
| 誤った知らせが続き、看護職員が見なくなる | unreadable の値は照合しない。基準を利用者ごとに直す |
| 基準を一般的な値で一律に置く | 利用者ごとに看護職員が決める。 一律の基準は知らせが多すぎるか少なすぎる |
| 知らせを確定まで待たせる | 基準を外れた filled は読み取りの直後に知らせ、「未確定」と書く |
上の3行が失敗のほとんどで、 どれもAIが「それらしい記録」を作ってしまう方向の失敗です。
下の3行は運用が始まってから効きます。 誤った知らせが続くと、看護職員は知らせを見なくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 利用者の氏名、体温・血圧・脈拍、食事量、排泄の状態です。いずれも利用者の心身の状態に関する情報で、慎重な扱いが要る個人情報です。
- 外部へ渡す範囲を、読み取りに必要なものに限る … 生成AIに渡すのは、OCRの結果と、行の番号と利用者IDの対応までにできます。氏名を渡さなくても、行と利用者IDの対応があれば値はそろえられます。 氏名はワークフローの側で介護記録ソフトの利用者IDから引き直します
- 利用するAIサービスとデータの保存場所を決めてから始める … 施設の個人情報の取り扱いの規程に照らし、どのサービスに、どの範囲を渡してよいかを先に決めます。 最小構成で一般向けの生成AIの画面を使うときは、氏名を伏せた画像にします
- 急変の報告をこの仕組みに載せない … 知らせが届くのはスキャンの後です。その場で気づいた変化は、これまでどおり口頭で看護職員に伝えます。 職員への説明で、このことを最初に伝えてください
- 基準を外れたときの対応は看護職員が決める … この構成が出すのは、基準を外れた値があったという事実だけです。受診するか、様子を見るか、配置医に連絡するかは、看護職員と配置医の判断です
- 読み取りの値をそのまま公式の記録にしない … 介護記録ソフトに入るのは、ユニットの職員が確定した値だけです。確定した人と日時を残し、紙・画像・記録のどれを正本とするかも決めます
誤りが起きた場合のリスクは、知らせるべき値を流すことと、別の利用者の記録に値を入れることの2つです。 どちらもAIに推測させる余地を残したときに起きるので、そこを設計で閉じます。
10まず何から始めるか
1週目:チェック表の書式を見直す
今のチェック表を、読み取りやすい形に直します。体温の整数部を印刷する、血圧を2マスに分ける、排便の有無を四角いチェックボックスにする、表の上部にユニット名と日付を大きく印刷する。 介護記録ソフトの利用者一覧から毎日印刷し、行の並びを一覧として残す手順も決めます。
2週目:14枚で試す
2つのユニットで新しい書式を1週間使い、14枚を氏名を伏せて生成AIに読ませます。介護記録ソフトに入力された値と突き合わせ、空欄を埋めていないか、読みにくい数字を寄せていないかを最優先で見ます。
3週目:利用者ごとの基準を書き出す
看護職員と一緒に、利用者ごとの「知らせる値」を一覧にします。 日ごろから気にかけている利用者から始め、一覧に無い利用者には施設で決めた共通の目安を当てます。
4週目:スキャンから確認画面までをつなぐ
Power Automate で受付用フォルダを見張り、OCRと生成AIを呼び、確認用のリストに書き出すところまで作ります。この時点では看護職員への知らせを出さず、確認画面の unreadable と blank の数だけを毎日数えます。
2か月目: 基準の照合と Teams への知らせを足し、看護職員に知らせの数と中身を見てもらいます。誤った知らせがあれば、基準か書式のどちらを直すかを決めます。3か月目以降: 介護記録ソフトへの取り込みを足し、1枚14分が何分になったかを実測します。全ユニットに広げ、基準を外れた値が届くまでの時間を、導入前と比べて確かめた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
レイアウトモデルがテキスト、テーブル、選択マーク(チェックボックスなど)、構造を抽出すること。入力がPDFと画像であること。Free レベルはPDFとTIFFの最初の2ページのみ処理すること。ファイルサイズがS0で500MB、画像が50×50から10,000×10,000ピクセル、テキストの最小の高さが1024×768の画像で12ピクセル(150dpiで約8ポイント)であること。テーブルのセルに行と列の番号が付くこと。単語ごとの信頼度、行ごとの手書きスタイル(isHandwritten)と信頼度、選択マークの状態(selected/unselected)と信頼度が返ること。ページの回転の角度が返ること | Microsoft Learn: ドキュメント レイアウト分析 | 2026-10-06 |
読み取りモデルとレイアウトモデルの手書きテキストの対応言語に日本語(ja)が含まれること(v4.0) | Microsoft Learn: 読み取りとレイアウトの言語サポート | 2026-10-06 |
構造化出力が指定した JSON スキーマに従った応答を返し、スキーマへの厳密な準拠を保証しなかった JSON モードとは異なること。すべてのフィールドを必須にし、省略可能な値は null との共用体型で表すこと。additionalProperties: false を常に設定すること。オブジェクトのプロパティは最大100個、入れ子は最大5レベルであること | Microsoft Learn: Azure OpenAI で構造化出力を使用する方法 | 2026-10-06 |
| SharePoint コネクタのトリガー「ファイルの作成時 (プロパティのみ)」がライブラリ列のプロパティだけを返し、「ファイル コンテンツの取得」で内容を取得すること。「フォルダーにファイルが作成されたとき」が非推奨で、サブフォルダーでは起動しないこと。接続ごとのAPI呼び出しが60秒あたり600回であること | Microsoft Learn: SharePoint コネクタ | 2026-10-06 |
利用者ごとの基準の値と、基準を外れたときの対応は、施設の看護職員と配置医が決めてください。 本記事は、製品の公開仕様で確認できた範囲だけを扱っています。介護記録ソフトへの取り込みの方法は、利用中の製品で確かめてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0462)についてのご相談はこちらから。
