介護施設で下膳の前に撮った食事の写真を厨房の基準の写真と比べ、主食・副食ごとの摂取量の下書きを作って、食事量が落ちている利用者を拾う
下膳の前にタブレットで撮った利用者ごとのお膳の写真を、厨房が撮った同じ献立・同じ食形態の基準の写真と比べ、主食・主菜・副菜・汁物の摂取量を「割」で見込んで記録の下書きにします。直近の記録と並べ、食事量が落ちている利用者を看護職員と管理栄養士に知らせます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Google Apps Script/Make/Power Automate
- 対象業界
- 介護/医療
- 対象部門
- 総務
- 対象業務
- データ入力・転記/記録・議事録作成
- 主な課題
- 人手が足りない/入力作業が多い/期限・対応漏れが起きる
- AIで行う処理
- 画像認識
- 主な効果
- 入力漏れ削減/判断支援/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 食事の終わりに、職員が利用者ごとのお膳を見て、主食と副食の残り具合を確かめる
- 紙の食事チェック表に、主食・副食の割を書く。水分の量も書く
- 下膳し、口腔ケアと排泄の介助に移る
- 休憩の前か勤務の終わりに、チェック表を見ながら介護記録のシステムへ入力する
- 書き漏れがあれば、そのときの担当者に聞くか、記憶で埋める
- 「最近食べていない」と感じた利用者がいれば、申し送りで看護職員に伝える
- 人厨房が、献立と食形態ごとの基準のお膳を1枚ずつ撮り、基準写真用のフォームから送る
- 人食事の終わりに、フロアの職員が利用者ごとのお膳を食札が写るように上から1枚撮る。フロアと食事の区分を選んで、まとめてフォームから送る
- 自動フォームの送信をきっかけに、写真を処理待ちの一覧に積む
- 自動数分おきに動く処理が、写真を取り出し、写り具合と食札の番号を確かめる
- 自動食札の番号から利用者と食形態を引き、同じ献立・同じ食形態の基準の写真を選ぶ
- 自動2枚を比べ、主食・主菜・副菜・汁物の摂取量を「割」で見込み、根拠を書く
- 自動見込みの確かさが低いもの、器が見えないものに印を付ける
- 人フロアの職員が、その食事の一覧をタブレットで開き、印の付いたものを中心に直して確定する
- 自動確定した記録を直近の記録と並べ、食事量が落ちている利用者を規則で拾う
- 自動拾った利用者を、看護職員と管理栄養士にメールで知らせる
- 人確定した記録を、介護記録のシステムへ取り込む(CSVの取り込み、またはまとめての転記)
各工程の詳しい説明を読む
- 食事の終わりに、職員が利用者ごとのお膳を見て、主食と副食の残り具合を確かめる
- 紙の食事チェック表に、主食・副食の割を書く。水分の量も書く
- 下膳し、口腔ケアと排泄の介助に移る
- 休憩の前か勤務の終わりに、チェック表を見ながら介護記録のシステムへ入力する
- 書き漏れがあれば、そのときの担当者に聞くか、記憶で埋める
- 「最近食べていない」と感じた利用者がいれば、申し送りで看護職員に伝える
(a)記録が「だいたい」になる。 下膳の時間は介助が重なります。1人ずつ器を見る時間がなく、「いつもどおり」の割が書かれやすくなります。 あとで打ち直すときに書き漏れが見つかると、記憶で埋めるしかありません。
(b)同じ内容を二度書いている。 紙に書き、システムに打ち直すたびに、転記の誤りが入る余地があります。
(c)変化に気づくのが遅れる。 3日続けて主食が5割を切っていても、日をまたいで同じ職員が見ているとは限りません。記録はあっても並べて見る仕組みがないので、気づきが職員の感覚に頼っています。
(d)人による差が大きい。 同じお膳を見ても、ある職員は6割、別の職員は5割と書きます。基準の写真が無いので、何を10割とするかが人ごとに違います。
- 【人】 厨房が、献立と食形態ごとの基準のお膳を1枚ずつ撮り、基準写真用のフォームから送る
- 【人】 食事の終わりに、フロアの職員が利用者ごとのお膳を食札が写るように上から1枚撮る。フロアと食事の区分を選んで、まとめてフォームから送る
- 【自動】 フォームの送信をきっかけに、写真を処理待ちの一覧に積む
- 【自動】 数分おきに動く処理が、写真を取り出し、写り具合と食札の番号を確かめる
- 【自動】 食札の番号から利用者と食形態を引き、同じ献立・同じ食形態の基準の写真を選ぶ
- 【自動】 2枚を比べ、主食・主菜・副菜・汁物の摂取量を「割」で見込み、根拠を書く
- 【自動】 見込みの確かさが低いもの、器が見えないものに印を付ける
- 【人】 フロアの職員が、その食事の一覧をタブレットで開き、印の付いたものを中心に直して確定する
- 【自動】 確定した記録を直近の記録と並べ、食事量が落ちている利用者を規則で拾う
- 【自動】 拾った利用者を、看護職員と管理栄養士にメールで知らせる
- 【人】 確定した記録を、介護記録のシステムへ取り込む(CSVの取り込み、またはまとめての転記)
8番目が、この設計の分かれ目です。 職員は全員分を見直すのではなく、印の付いたものと、いつもと違う値のものを直します。
9番目を規則で決めているのは、基準を後から変えられるようにするためです。 何を低下とするかは看護職員と管理栄養士が決めることで、施設ごとに違います。
02今回想定するシステム構成
厨房のタブレット ── 基準写真用フォーム(献立日・食事区分・食形態) フロアのタブレット ── 摂取量用フォーム(フロア・食事区分・お膳の写真をまとめて) │ ▼【トリガー】Google フォームの送信 Google Apps Script ── 処理待ちの一覧(Google スプレッドシート)に積む ▼【トリガー】5分おきの時間主導型 Google Apps Script ── 写真を取り出し、形式と大きさを確かめる ▼ Gemini API ── ①写り具合の確認と食札の番号の読み取り │ ├── 撮り直し/番号が読めない ──▶ 一覧に「要確認」と書いて止める ▼ Google Apps Script ── 利用者の一覧から食形態を引き、基準の写真を選ぶ ▼ Gemini API ── ②基準の写真との比較 │ 主食・主菜・副菜・汁物の割 + 根拠 + 確かさ ▼ 摂取量の下書き(Google スプレッドシート) ▼ 【フロアの職員が一覧で直して確定】 ▼ Google Apps Script ── 直近の記録と並べて低下を判定 ──▶ 看護職員・管理栄養士へメール ▼ 介護記録のシステムへ取り込み
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(写り具合の確認、食札の読み取り、基準の写真との比較) | Claude API、OpenAI API |
| 連携 | Google フォーム(基準の写真とお膳の写真の受け取り) | Microsoft Forms、自社で用意する撮影用の画面 |
| 連携 | Google Apps Script(処理待ちの管理、呼び出し、一覧への書き込み、低下の判定) | Make、Power Automate |
| 連携 | Google スプレッドシート(処理待ちの一覧、利用者の一覧、摂取量の下書き) | Microsoft Lists |
| 保管 | Google ドライブ(お膳の写真と基準の写真) | Microsoft OneDrive、SharePoint |
| 通知 | Gmail(看護職員・管理栄養士への知らせ) | Microsoft Teams、施設内の連絡の仕組み |
介護記録のシステムには直接書き込みません。 製品ごとに取り込みの方法が違うためです。確定した記録をCSVで書き出し、取り込みの機能で入れます。
Google フォームの「ファイルのアップロード」の質問では、ファイルはフォームのオーナーの Google ドライブの新しいフォルダに保存され、回答者は Google アカウントへのログインが必要です。 形式・数・最大サイズを決められます。共有ドライブのフォームや、データ損失防止が有効な場合は使えないので、最初に置き場所を確かめます。
判定の土台は Gemini API の画像理解です。 対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、タブレットの写真を変換せずに渡せます。 1回の呼び出しに複数の画像を並べられるので、お膳の写真と基準の写真を同時に渡して比べさせます。 画像を直接入れる場合は、指示などと合わせたリクエスト全体が20MBまでとされています。
処理を2つのトリガーに分けるのは、Apps Script の1回の実行が6分まで、トリガーの合計が1日6時間まで(Google Workspace のアカウント)だからです。 20枚を1回で処理すると時間切れになります。
03どうやって実装するのか
処理の起点を決める
トリガーは2つです。 1つはフォームの送信で、写真のファイルと、フロア・食事の区分・送信の時刻を処理待ちの一覧に1行ずつ積みます。ここでは Gemini API を呼びません。 もう1つは5分おきの時間主導型のトリガーで、一覧から「未処理」の行を古い順に最大8件取り出して処理します。
1件は2回の呼び出しで数秒から十数秒かかるので、1回の件数を決めて6分の上限の中で終わらせます。 時間切れが近づいたら、残りは次の回に回します。
厨房の基準の写真は、毎食の配膳の前に送ってもらいます。 献立日・食事区分(朝・昼・夕)・食形態を選び、1枚ずつ送ります。基準の写真が無い食事は、比較をせずに「基準なし」で止めます。 基準なしで見込ませると、AIが「普通の量」を想像して埋めてしまいます。トリガーは作った人のアカウントで動くので、施設で管理する専用のアカウントで作ります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| お膳の写真 | 下膳の前に上から撮った1枚。食札が写っている | 摂取量用フォーム(Google ドライブ) |
| 基準の写真 | 同じ献立・同じ食形態の、食べる前のお膳 | 基準写真用フォーム(Google ドライブ) |
| 利用者の一覧 | 食札の番号、フロア、食形態、主食の種類(ご飯・粥・パン)、欠食・外出の予定 | Google スプレッドシート(総務が管理) |
| 献立表 | 献立日・食事区分ごとの、主食・主菜・副菜・汁物の品名 | 厨房(委託先)からの書き出し |
| 直近の記録 | 利用者ごとの、確定した摂取量の過去2週間分 | 摂取量の下書き(確定済みの行) |
質を決めるのは、基準の写真と献立表です。 基準の写真が無ければ「何割残ったか」の分母がありません。献立表が無ければ、どの器が主菜でどの器が副菜かを、AIが器の見た目から推測することになります。 品名を渡せば、「鯖の味噌煮が主菜」と決めた上で比べられます。
利用者の一覧に欠食と外出の予定を持たせるのは、空のお膳と写っていないお膳を区別するためです。 通院で昼食を食べていない利用者のお膳が無いのは正常です。予定が無いのに写真が無ければ、撮り漏れとして一覧に出します。
利用者の名前は渡しません。 食札には番号を大きく印字し、名前は小さくするか裏に回します。写真に名前が写らなければ、外部に渡るのは番号とお膳だけです。
データの取得方法を決める
フォームの送信のイベントから、アップロードされたファイルのIDが取れます。Apps Script で Google ドライブからファイルを読み、画像のバイト列をそのまま Gemini API に渡します。 1回の呼び出しで渡すのは、お膳の写真1枚と基準の写真1枚です。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| お膳の写真 | フォームの回答のファイル | 比較の対象 |
| 基準の写真 | 献立日・食事区分・食形態で引く | 比較の基準 |
| 食形態と主食の種類 | 食札の番号で利用者の一覧を引く | 基準の写真の選択と、指示への差し込み |
| 献立の品名 | 献立日・食事区分で献立表を引く | どの器が何かを指示に書く |
| 直近の記録 | 利用者の番号で確定済みの行を引く | 低下の判定(AIには渡さない) |
直近の記録をAIに渡さないのは、見込みが過去に引っぱられるのを防ぐためです。 「この人はいつも10割」と知らせると、残りがあっても10割と答えやすくなります。1食分の見込みは写真だけから出させ、過去との比較はスクリプトが行います。
基準の写真は、同じ日の同じ食事のものを使います。 前の週の同じ献立で代用すると、盛り付けの量が違うことがあります。その日の基準が無ければ「基準なし」です。
AIへ渡す前に整形する
- 形式の確認 … PNG、JPEG、WEBP、HEIC、HEIF のどれかであることを確かめます。それ以外は撮り直しです
- 大きさの確認 … 2枚と指示を合わせて20MBを超えないようにします。タブレットの設定で、写真の大きさを中程度にしておきます
- 向きの確認 … 横向きで撮られた写真は、向きの情報を見て直します
- 重複の確認 … 同じ食事で同じ食札の写真が2枚あれば、後のものを使い、前のものに印を付けます
- 欠食の照合 … 利用者の一覧で欠食・外出の予定がある利用者は、写真が無くても「欠食」として一覧に出します
- 撮り漏れの確認 … 予定が無いのに写真が無い利用者を、そのフロアの一覧の先頭に出します
2番目を軽く見ないでください。 20MBを超えると呼び出しそのものが失敗し、小さくしすぎると小鉢の中が潰れます。最初の1週間で、見込みが崩れない大きさを決めます。
画像は768×768ピクセルのタイルごとに258トークンと数えられ、media_resolution で1枚あたりの上限を決められます。 器の中が見える最小の大きさにそろえます。
AIに処理させる
させるのは2つの段階です。 1つ目は写り具合の確認と食札の番号の読み取り、2つ目は基準の写真との比較です。1つ目で止まったものは、2つ目に進めません。 ぶれた写真で比較をさせると、それらしい割が返ってきてしまいます。
1つ目の段階
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 写り具合 | ぶれ、暗さ、お膳の全体が写っているか | どれかが当てはまれば retake |
| 食札の番号 | 印字された番号を読む | 読めなければ unreadable(推測しない) |
| 器の数 | 写っている器の数を数える | 基準と数が違えば、比較の段階で印を付ける |
2つ目の段階
| 見るもの | 判定の仕方 | 判断できないときの扱い |
|---|---|---|
| 主食 | 基準の写真と比べた残りの量から、食べた割合を0〜10の割で見込む | 器の中が見えなければ not_visible |
| 主菜 | 同上 | 同上 |
| 副菜 | 同上。副菜が2品なら合わせて見る | 同上 |
| 汁物 | 同上。蓋が閉じていれば見ない | 蓋が閉じていれば not_visible |
| 気づき | こぼれ、器の移し替え、手つかずの品 | 書くのは写真に見えるものだけ |
確かさは3段階で付けさせます。 器の中がはっきり見えて基準との差が分かるものは high、見えるが量の見積もりに幅があるものは medium、器の一部しか見えないものや重ねられているものは low です。low の品が1つでもあれば、その利用者の行に印を付けます。
| させないこと | 理由 |
|---|---|
| 食べた理由の推測 | 「体調が悪そう」などは写真から分からない |
| 低下しているかの判断 | 規則で決め、看護職員と管理栄養士が確かめる |
| 水分の量の見込み | コップやストローの飲み物は写真では量が分からない |
| 見えない器の割の補完 | 「いつもどおり」で埋めると、見つけたい変化が消える |
| 利用者の特定 | 食札の番号を読むだけ。顔や名前から特定しない |
4行目がいちばん起きやすい失敗です。 汁椀に蓋が閉じていると、AIは「汁物は飲み干した」か「手つかず」かのどちらかを答えがちです。どちらも根拠がありません。 not_visible にさせ、職員が一覧で埋めます。
水分の量は、上から撮った写真では見込めません。 この構成では、今までどおり職員が書きます。
指示内容を固定する
あなたは介護施設で、下膳の前のお膳の写真から食事の摂取量の下書きを作る立場です。
1枚目は食べる前の基準のお膳、2枚目は利用者が食べた後のお膳です。
2枚の写真に写っているものだけを見て判断してください。推測で埋めないでください。
【この食事の献立】
主食:{staple}({staple_type})
主菜:{main_dish}
副菜:{side_dishes}
汁物:{soup}
食形態:{texture}
【見込み方】
- 品ごとに、基準のお膳と比べて「食べた割合」を0〜10の整数(割)で答えてください。
10は残りが無い、0は手をつけていない、5は半分程度です。
- 器の中が見えない品は、ratio を null にし、status を not_visible にしてください。
蓋が閉じた汁椀、重ねられた器、手やタオルで隠れた器が当たります。
- 見えない品を「いつもどおり」や「完食」で埋めないでください。
- 品が別の器に移されている、お膳の外にこぼれている、と見える場合は、
notes にそのまま書いてください。こぼれた分を食べた量に数えないでください。
- 量の見込みに幅がある場合は confidence を medium、器の一部しか見えない場合は low にしてください。
- evidence には、判断の根拠にした見た目を短く書いてください(例:「茶碗の底に三分の一ほど残る」)。
【書かないこと】
- 食べた理由、体調、好みの推測は書かないでください。
- 食事量が落ちているかどうかの判断は書かないでください。
- 飲み物の量は見込まないでください。
- 写真に人の顔や名前が写っていても、それを出力に書かないでください。
【食札】
写真の食札に印字された番号を tray_id に入れてください。
読めない場合は tray_id を空にし、tray_status を unreadable にしてください。
番号を推測で補わないでください。
「見えない品を埋めない」を独立させて書いているのは、何も言わないと埋めるからです。 写真に器が写っていて中が見えないと、AIは周りの器の残り具合から「同じくらい」と答えがちです。埋めた値が正しいかどうかではなく、見えなかったという事実が消えることが問題です。
「こぼれた分を数えない」も同じです。 こぼれて空になった器を10割とすると、実際より多く食べたことになります。
出力形式を固定する
次の形のJSONで受け取ります。 Gemini API の構造化出力では、response_format に mime_type: "application/json" と JSON Schema を渡します。ratio は minimum: 0・maximum: 10 の整数、status と confidence は enum で選択肢を決めます。公式の案内では、出力はJSONとして正しくても、値はアプリケーションの側で必ず検証するようにとされているので、スクリプトで確かめます。
{
"tray_id": "",
"tray_status": "ok | unreadable",
"photo_quality": "good | retake",
"dish_count_match": true,
"items": [
{ "dish": "staple | main | side | soup",
"status": "ok | not_visible",
"ratio": 0,
"confidence": "high | medium | low",
"evidence": "" }
],
"notes": ""
}
1つ目の理由は、見込みと確定を別の列に持てることです。 一覧には ratio をAIの見込みとして書き、隣に職員が確定させる列を置きます。職員が直したかどうかが、列を比べるだけで分かります。 直した割合が多い品は、指示か写真の撮り方を見直す材料になります。
2つ目は、スクリプトで検証できることです。
| 確かめること | 合わないときの扱い |
|---|---|
tray_id が利用者の一覧にある | 一覧の先頭に「番号の確認」で出す |
tray_id がそのフロアの利用者 | 他のフロアのお膳が混ざっている。「番号の確認」 |
items に4品がそろっている | 足りない品は not_visible として補い、印を付ける |
ratio が0〜10の整数か null | 範囲外なら、その品を not_visible に直す |
status が not_visible なのに ratio がある | ratio を捨てる |
3つ目は、職員の確認の順番を決められることです。 photo_quality が retake、tray_status が unreadable、confidence が low の品があるもの、dish_count_match が false のものを一覧の上に並べます。それ以外は、写真と割を並べて流し見るだけにします。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google フォーム | フォームの送信のトリガー | 写真と、フロア・食事の区分を受け取る |
| 処理待ちの一覧 | スプレッドシートへの書き込み | 未処理・処理済み・要確認を管理する |
| Gemini API | Apps Script から呼び出し | 写り具合の確認と、基準の写真との比較 |
| 摂取量の下書き | スプレッドシートへの書き込み | 見込みの割、根拠、確かさ、確定の列 |
| Gmail | Apps Script からの送信 | 低下を拾った利用者を看護職員・管理栄養士へ知らせる |
| 介護記録のシステム | CSVの書き出しと取り込み | 確定した記録だけを入れる |
低下の判定は、確定した記録だけで行います。 見込みの段階の値で判定すると、AIの見込みの揺れがそのまま知らせになります。職員が確定させた行がそろってから、規則を当てます。
| 規則(例) | 知らせる先 |
|---|---|
| 主食が3食続けて5割未満 | 看護職員、管理栄養士 |
| 直近7日の主食・主菜の平均が、その前の14日の平均より2割以上低い | 管理栄養士 |
| 1日3食のうち2食以上が「欠食」以外で写真なし | フロアのリーダー(撮り漏れ) |
規則の値は、看護職員と管理栄養士が決めます。 ここに書いた値は例です。知らせのメールには、確定した割の並びとお膳の写真へのリンクを付け、「低栄養のおそれ」のような判断の言葉は入れません。 判断するのは受け取った人です。
メールの送信には1日の上限があります。 Google Workspace のアカウントで1日あたり1,500名の受信者まで、とされています。利用者ごとに1通ずつ送らず、1日1回、拾った利用者をまとめて1通にします。
人が確認する
フロアの職員は、食事ごとに1回、その食事の一覧を開きます。 開く時間は、下膳と口腔ケアが終わった後です。記録が確定するまでは、介護記録のシステムに入りません。
- 一覧の上から見る … 撮り直し、番号の確認、確かさが
lowの品、器の数が合わないものが先に並びます。写真を開き、割を直すか、撮り漏れを撮り直します not_visibleの品を埋める … 蓋が閉じていた汁物や、重ねられた器です。下膳のときに見た記憶で埋めるか、「不明」のままにします- 残りを流し見る … 写真と割を並べた行を見て、明らかに違うものだけ直します
- 確定する … フロアの一覧の確定のボタンを押すと、確定の列に値が写ります
2番目で「不明」を残せるようにしておくのが大事です。 記憶があいまいなまま割を書くと、元の紙の記録と同じ問題に戻ります。「不明」が多い品は、撮り方か食器の置き方を見直す材料にします。
看護職員と管理栄養士は、知らせを受けた利用者だけを見て、必要なら食事の様子を直接確かめます。
例外に対処する
| 起きること | 対応 |
|---|---|
| 写真がぶれている・暗い | retake。フロアの一覧の先頭に出し、下膳前なら撮り直す。下膳後なら職員が割を入れる |
| 食札の番号が読めない | unreadable。番号を推測しない。職員が写真を見て番号を選ぶ |
| 他のフロアの番号が読めた | 「番号の確認」。取り違えか読み違いかを職員が確かめる |
| 基準の写真が無い | 比較をせず「基準なし」。その食事は職員が割を入れる |
| 代替食・個別の対応食 | 基準の写真と器が違う。利用者の一覧に「個別」の印を持たせ、比較をせずに職員が入れる |
| 家族の差し入れを食べた | 写真に写らない。職員が notes に書く。割は献立の分だけを見る |
| 蓋が閉じた汁椀 | not_visible。職員が埋めるか「不明」 |
| 器を重ねて下膳を手伝ってくれた | 器の数が合わない。dish_count_match が false。職員が割を入れる |
| Gemini API が応答しない・時間切れ | 一覧の行を「未処理」のまま残し、次の回で再度処理する。3回失敗したら「要確認」 |
| 1日の処理が終わらない | 夜間に残りを処理する。翌朝までに確定できなければ、その日の分は紙で記録する |
代替食と個別の対応食は、最初から比較の対象から外します。 嚥下の状態に合わせた個別の盛り付けは、基準の写真と器も量も違います。比べると、見当違いの割が返ります。 利用者の一覧で「個別」の印を付けた利用者は、写真は残しますが割は職員が入れます。
下膳を手伝ってくれる利用者のお膳は、器を重ねる前に先に撮ります。
記録を残す
- お膳の写真と基準の写真の元のファイル(Google ドライブ。保存の期間は施設の記録の決まりに合わせる)
- Gemini API に渡した指示の全文と、返ってきたJSONの全文
- AIの見込みの割と、職員が確定させた割(別の列で残す)
- 誰がいつ確定させたか、どの品を直したか
- 低下の知らせを、いつ、誰に、どの規則で送ったか
- 品ごとの「直した割合」と「不明」の数の推移
見込みと確定を別の列で残すのは、AIの精度を後から測るためです。 職員が直した割合が品ごとにどれくらいかを見れば、汁物はAIに任せられない、主食はほとんど直さない、といった傾向が分かります。 直す割合が高い品は、撮り方か指示を直すか、見込みの対象から外します。写真をいつまで残すかは、総務が施設の規程に合わせて決めます。
04実装レベルの3段階
最小構成では枚数がさばけません。 1枚ずつ貼るので、1食20名分にも時間がかかります。確かめるための段階です。 半自動化で、1回20分が12分程度になります。 打ち直しと低下の気づきが残ります。本格構成で8分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の一覧を1か月使い、職員がよく直す品と撮り漏れの多いフロアを直してから知らせを足すほうが、誤った知らせが減ります。
05工数削減シミュレーション
導入後 360件 × 8分 ÷ 60 = 48 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- ユニット型の特別養護老人ホームや介護老人保健施設など、毎食の主食・副食の摂取量を「割」で記録しており、その記録を介護職員が下膳のときに目で見て紙に書き、あとで介護記録のシステムへ打ち直している施設。食札に利用者の番号が印字されている場合。厨房(委託先を含む)が献立と食形態ごとに盛り付けの基準をそろえており、その写真を毎食1枚ずつ撮れる場合。会社支給のタブレットと Google Workspace を使える場合。
- 利用者が十数名で、看護職員や管理栄養士が毎食の様子を直接見ている場合。食事を食堂の大皿から取り分ける形で、1人分の盛り付けが決まっていない場合。経管栄養の利用者が中心の場合。なお、低栄養の判定や食事の形態・量の変更は、この構成では代替できません。それを決めるのは管理栄養士、看護職員、医師です。
07最小構成で試す方法
- 1つのフロアで、3日分の昼食だけを対象にする
- 厨房に、その3日の昼食の基準のお膳を食形態ごとに1枚ずつ撮ってもらう
- 下膳の前に、利用者ごとのお膳を上から1枚ずつ撮る(食札が写るように)
- いつもどおり、紙のチェック表にも割を書いておく
- 手元の Gemini の画面に、基準の写真とお膳の写真を2枚並べて貼り、第7章の指示を貼り付けて、主食・主菜・副菜・汁物の割を出させる
- 出てきた割を、紙のチェック表と並べる
写真に利用者の名前や顔を写さず、業務で契約しているサービスで試してください。
| 出てきた内容 | 判断 |
|---|---|
| 紙の記録と1割程度の差に収まる品が多い | フォームとスクリプトの連携に進む |
| 主食は合うが汁物と副菜がずれる | 撮る角度と食器の置き方で直る。汁物は職員が入れる前提で進める |
| 見えない品を埋めてくる | 指示の書き方で直る。構成は有効 |
| 職員どうしでも割がばらばら | AIの問題ではない。 何を10割とするかを先にそろえる |
4行目は、紙の記録にもともとあった揺れです。 基準の写真と「5割の例」「3割の例」の写真で職員の目合わせをしてから比べ直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 見えない器の割を埋めてくる | not_visible を指示で独立させ、スクリプトでも ratio を捨てる |
| こぼれた分を食べたことにする | 指示で禁じ、notes に書かせる。職員が一覧で直す |
| 基準の写真と器の置き方が違う | 基準のお膳と同じ並びで出す。写真は真上から撮る |
| 写真が大きすぎて呼び出しが失敗する | リクエスト全体が20MBまで。タブレットの写真の大きさを中程度に |
| 1回の実行で処理が終わらない | 1回の実行は6分まで。送信時は積むだけ、5分おきに数件ずつ |
| 職員の退職でトリガーが止まる | トリガーは作った人のアカウントで動く。施設の専用アカウントで作る |
| フォームの写真の質問が使えない | 共有ドライブのフォームやデータ損失防止が有効な場合は不可。置き場所を先に確かめる |
| 食札の名前が写る | 番号を大きく、名前を小さく。 写真に名前を写さない |
| 代替食で見当違いの割が出る | 「個別」の印で比較から外す |
| 低下の知らせが多すぎる | 判定は確定した記録だけで行う。規則の値を看護職員と管理栄養士が調整する |
| 職員どうしで割がそろわない | 基準の写真と「5割の例」で目合わせする |
| 水分まで写真で見込もうとする | 水分は対象外。 今までどおり職員が書く |
上の2行が、この構成の失敗のほとんどです。 どちらも「写真では分からないことを、分かったことにする」失敗です。
下から3行目も早く効きます。 見込みの段階で判定すると、看護職員が知らせを読まなくなります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 利用者ごとの食事の摂取量、食形態、欠食や外出の予定です。食事の量と食形態は、健康状態に関わる情報です。 個人情報の保護に関する法律で要配慮個人情報とされる情報に近い扱いが必要です。
- 外部へ渡すのは、お膳の写真と番号だけにする … 食札は番号を大きく、名前は写らないようにします。利用者の名前、病名、既往歴は Gemini API に渡しません。 利用者の一覧はスプレッドシートの側にあり、照合はスクリプトで行います
- 有料の枠で使う … Gemini API の利用規約では、無料の枠では送った内容が製品の改善に使われ、人が読むことがあるとされています。有料の枠では、プロンプトや画像を製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録するとされています。利用者の記録に関わる写真は、有料の枠でだけ扱います
- 写真の撮り方を決める … お膳の上から撮り、利用者の顔や手元の私物が写らない角度を職員で決めます。写り込んだ写真は、確認のときに削除します
- この構成は低栄養の判定を代替しません … 出すのは、写真から見込んだ割と、規則で拾った並びまでです。食事の形態や量を変えるか、受診につなぐかは、管理栄養士、看護職員、医師が決めます
- 写真の閲覧の範囲を絞る … Google ドライブのフォルダは、フロアの職員、看護職員、管理栄養士、総務だけが見られるようにします。フォームのオーナーのドライブに保存されるので、オーナーを施設の専用アカウントにします
- 利用者と家族への説明 … 食事の写真を記録に使うことを、入所の説明や同意の手続きの中で伝えます
誤りが起きた場合のリスクは、食べていないのに食べたことになることと、変化を見落とすことです。 not_visible を残すことと、確定した記録で判定することで設計の側で防ぎます。
10まず何から始めるか
1週目:食札と基準の写真の撮り方を決める
食札の番号を大きく印字し、名前が写らないようにします。厨房と話し、献立と食形態ごとに基準のお膳を1枚撮る運用を決めます。撮る角度、器の並び、背景(お盆の色)をそろえます。
2週目:1フロアの昼食で試す
1つのフロアで3日分の昼食を撮り、手元の Gemini の画面で割を出させ、紙のチェック表と並べます。見えない品を埋めていないか、こぼれた分を数えていないかを最優先で見ます。
3週目:目合わせと規則の検討
職員どうしで割がそろっているかを、同じ写真で確かめます。並行して、看護職員と管理栄養士と、低下を拾う規則の値を決めます。 利用者の一覧に「個別」の印と欠食・外出の予定の列を足します。
4週目:フォームから一覧までをつなぐ
フォームと Apps Script で、写真を積み、Gemini API を呼び、一覧に書き出すところまで作ります。この時点では低下の知らせを出さず、職員が一覧で直す割合を見ます。
2か月目: 確定の列と低下の判定、メールの知らせを足し、フロアを4つに広げます。3か月目以降: 介護記録のシステム用のCSVの書き出しを足し、紙のチェック表をやめます。品ごとの「直した割合」が落ち着き、汁物のように任せられない品の扱いが決まった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
対応する画像の形式が PNG、JPEG、WEBP、HEIC、HEIF であること。画像を直接入れる場合、指示などと合わせたリクエスト全体が20MBに制限されること。1回の入力に複数の画像を並べて渡せること。media_resolution が1枚の画像に割り当てるトークンの上限を決めること。縦横とも384ピクセル以下なら258トークン、それより大きい画像は768×768ピクセルのタイルに分けてタイルごとに258トークンであること | Gemini API: Image understanding | 2026-10-07 |
構造化出力を /v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定すること。enum、minimum、maximum、required が使えること。出力がJSONとして正しくても値はアプリケーションの側で検証するよう案内されていること | Gemini API: Structured output | 2026-10-07 |
| インストール型トリガーにフォームの送信と時間主導型があること。トリガーは作った人のアカウントで動くこと。1つのスクリプトで1人あたり20個まで | Google Apps Script: Installable triggers | 2026-10-07 |
| 1回の実行時間が6分まで、トリガーの合計の実行時間が Google Workspace のアカウントで1日6時間まで、メールの受信者が Google Workspace のアカウントで1日1,500名までであること | Google Apps Script: Quotas for Google Services | 2026-10-07 |
| ファイルのアップロードの質問で、ファイルがフォームのオーナーの Google ドライブの新しいフォルダに保存され、回答者は Google アカウントへのログインが必要なこと。形式・数・最大サイズを設定できること。共有ドライブのフォームやデータ損失防止が有効な場合は使えないこと | Google ドキュメント エディタ ヘルプ: フォームでファイルをアップロードする | 2026-10-07 |
| 無料の枠では送った内容が製品の改善に使われ、人が読むことがあること。有料の枠ではプロンプトや画像などを製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録すること | Gemini API Additional Terms of Service | 2026-10-07 |
食事の写真を記録に使うことの同意の取り方と、写真の保存の期間は、施設の規程と自治体の指導に合わせて決めてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0662)についてのご相談はこちらから。
