つながる帳:システム全体像(非エンジニア向け)・外部API送信項目・知的財産メモ

施設向け説明・知的財産窓口・社内共有用。技術的な正確さより「何がどこで動くか」を優先して記載しています。

Googleドライブへの入れ方: このHTMLファイル(system-overview-ip-and-apis-ja.html)を、エクスプローラーでデスクトップの day-service-app\public\docs\ から探し、Googleドライブのフォルダにドラッグ&ドロップしてください。ブラウザで開くと図も含めてそのまま読めます。印刷→PDF保存も可能です。

1. 「ホームページ(HP)」と「アプリ本体」の関係

混同しやすいので、役割を分けて考えてください。

名前(例)置き場所の例何をするものか
紹介用サイト(LP) フォルダ tsunagarucho-HP など サービス説明・申込導線・動画。利用者の記録やAIはここにはありません。いわゆる「看板」です。
アプリ本体(実際に記録する場所) フォルダ day-service-app、本番URL例 tsunagarucho.jp 職員・家族がログインし、バイタル記録、共有、PDF、顔認証、AI補助などが動く本体プログラムです。

たとえるなら、LPは店の外看板day-service-appは店内のレジ・記録システムです。窓口で「アルゴリズムを」と言われた場合の主な対象はアプリ本体側です。

2. 全体のスキーム(図)

利用者のスマホ・施設のPCから見た、ざっくりした流れです。

紹介サイト(LP) tsunagarucho-HP 説明のみ・記録なし 利用者端末 ブラウザ(Chrome等) 職員・家族・本人 アプリ本体(本番) 例: tsunagarucho.jp / Vercel 画面・記録 (HTML/JS) サーバー処理 (/api/*) Supabase 認証・DB ストレージ Google Gemini API (外部AI) 音声入力 ブラウザ標準機能 →端末/OS提供 顔認識ライブラリ 端末上で計算(face-api 等) 案内 閲覧・遷移 HTTPS APIキーはサーバー側 記録画面へ 同じ端末内

テキスト版(ASCII)

  [紹介サイト LP  … tsunagarucho-HP など]
           |   (閲覧・申込リンクだけ)
           v
  [利用者のブラウザ]  -----HTTPS----->  [アプリ本体 day-service-app / 本番URL]
           |                                    |
           |  音声入力(任意)                    +---> [ Supabase ]  ログイン・DB・写真の保存先
           |  ※ブラウザ/OSの機能                    |
           X  (音声データの扱いは                     +---> [ Google Gemini ]
              GoogleやAppleなどの規約)                テキスト整形・画像分析・
                                                       メンタル参考スコア等
                                                   APIキーは「自社サーバー側」にのみ配置

  [顔認識] … 多くの処理は端末内(face-api)。特徴量は暗号化してDBに保存する設計。

  [画像変化検知・実装済み] … OpenCV.js(CDN)でブラウザ内ピクセル比較。前回画像メタ・署名URLは /api と
                            Supabase RPC。検知結果・職員判定は DB(RLS)。補助であり診断の代替ではない旨を規約・画面に明記。

3. 外部APIに送るデータ項目(一覧)

重要「外部」とは、貴社のサーバー(Vercel上の/api)から、第三者のクラウドへ送る内容を指します。Supabaseは貴社が契約するBaaSなので別枠で記載します。

3-1. Google Gemini API(生成AI)

アプリの「裏側の小さなサーバー」が、環境変数のAPIキーを使って Google にリクエストします。利用者のブラウザから直接APIキーを送る想定ではありません。

重要(運用): Gemini は有料プランで運用(2026-05-06 移行済)です。個人情報(バイタル・画像等)を送信するため、無料プランでの運用は禁止とします。実装側でも GEMINI_PAID_PLAN_CONFIRMED によるガードを入れています。
きっかけ(アプリ内機能)エンドポイント(自社側)Geminiへ実質送られる主な内容
申し送り案・汎用テキスト生成 POST /api/gemini
  • prompt または systemInstruction(役割の指示文)+ userText(ユーザーの文章)
  • model(省略時は既定モデル名)
個人情報の例: 申し送り用に組み立てられた記録項目のテキスト(体温・血圧・様子メモなど)がプロンプトに含まれる場合あり。
「母語→介護記録向け日本語」翻訳ボタン POST /api/gemini(同上) 固定の役割説明(systemInstruction)+ユーザーが入力した原文テキスト全文
メンタルヘルス参考(リスク参考情報) POST /api/mental-health
  • システム側の長い指示文(リスク区分の定義・JSON出力形式)
  • selfText:本人の自由記述など
  • staffText:職員の観察メモなど
  • vitalTrend集計済み数値(食事率の平均、気分スコアの平均と列、活動率、体重変化の要約、など)
注意(プライバシー設計): 現行実装では residentId・氏名などの識別子はGeminiの本文プロンプトには含めず、テキスト記述と数値トレンドのみを送ります。これらIDは主に自社のSupabaseへの保存に用います。
尿・便・皮膚の写真分析(画面名が Med系) POST /api/image-analysis
  • typeurine / stool / skin
  • imageBase64:画像データ(ピクセル情報に相当)
  • mimeType:画像形式(jpeg/png/webp/gif など)
  • 種別ごとの評価用システム指示文・短いヒント文

3-1a. 自社 API(Vercel/画像変化検知と Supabase)

Google ではなく、本アプリがホストする /api/* が Supabase(RPC・Storage 署名付き URL・テーブル INSERT/UPDATE)にアクセスします。ピクセル演算の本体はブラウザ内の OpenCV.js です。

機能エンドポイント(自社)サーバー・端末で扱う主な内容
前回画像の取得準備 POST /api/image-change-detection tenantId / residentId / currentRecordIdprepareOnly 等。service_role で RPC・Storage 署名 URL を発行。
検知結果の保存 POST /api/save-detection スコア、change_type、前後レコード ID 等を image_change_detections に INSERT(service_role)。
職員判定(問題なし/要観察/医療連絡) PATCH /api/save-staff-action リクエストの Bearer access_token(職員)+サーバーの anon キーで RLS のまま staff_action 等を UPDATE。
予兆アラート(日次記録のルール検知・職員通知) GET /api/precursor-alerts-batch(Vercel Cron) daily_records 過去90日を集計し、食事・気分・体重の閾値に達した場合に team_messagesis_urgent で INSERT(Gemini 不使用)。SUPABASE_SERVICE_ROLE_KEY 必須。CRON_SECRET 設定時は Authorization: Bearer が一致しないと 401。

仕様の正・試験手順: GitHub docs/feature-image-change-detection.md · docs/dummy-data-creation-guide.md · docs/DOCUMENTATION_INDEX.md

3-2. Supabase(契約クラウド基盤)

「外部」の一種ですが、貴社のアプリがデータを保管する正式な場所です。送信される項目は機能により異なり、例として以下が含まれ得ます。

通信の種類送られる可能性があるデータの例
ログイン(認証) メールアドレス、パスワード(HTTPSで)、セッション用トークン
日次記録の保存・取得 利用者ID、体温・血圧・食事率・様子メモ・服薬チェックなど、フォーム項目に対応するフィールド
顔認証まわり 暗号化された顔特徴量、同意ログ、照合結果ログ(成功/失敗・信頼度スコアなど)
メンタル参考APIの結果ログ(任意) リスク区分、要因リスト、説明文、推奨アクション、信頼度、どの入力が使われたかのフラグ
予兆アラート(職員チーム連絡) team_messages に保存される通知本文(利用者名・検知理由の要約・重複抑止用マーカー)
画像変化検知(職員向け) 検知スコア・説明テキスト、前後の記録 ID・画像パス、職員の判定(staff_action)・監査用ログ行

3-3. ブラウザの音声認識(Chromeの「音声入力」など)

アプリは SpeechRecognition というブラウザの標準機能を呼び出します。音声そのものがどのクラウドに送られるかは、Chrome / Safari / Edge の実装と利用者の設定に依存します(多くはGoogle等の音声認識バックエンド)。アプリ側のソースに「音声APIキー」は通常ありません。

項目内容
アプリから外部へ渡るもの(概念) マイク入力の音声ストリーム → ブラウザ/OSが選ぶ音声認識サービスへ(ベンダ依存)
アプリが受け取るもの 文字起こしされたテキスト(結果文字列)

3-4. CDN(ライブラリのダウンロード)

顔認証周りで、スクリプトをCDNから読み込む経路があります。これはプログラムファイルの取得であり、個人の記録本文を送ることとは別です。

画像変化検知: OpenCV.js を docs.opencv.org 等の CDN から読み込みます(プログラム取得)。比較対象の画像バイトは、多くの経路で Supabase の署名付き URL 経由でブラウザが取得します。

3-5. ブラウザ内画像解析(OpenCV.js・画像変化検知・実装済み)

知財PPTX スライド4追記用外部クラウドAI(Gemini)とは別枠のクライアント側処理です。色差・エッジ差等のスコアは参考情報であり、診断の代替ではありませんOpenCV 本体のライセンス層と CDN 取得の説明は、リポジトリ docs/feature-image-change-detection.md および サードパーティライセンス概要、索引 docs/DOCUMENTATION_INDEX.md を参照。

論点説明(窓口・法務共有用)
技術の選択 記録画像の時系列比較に OpenCV.js(CDN 配信のビルド)を使用。必要に応じ TensorFlow.js 等への拡張はモデル単位でライセンス確認。
機械学習モデルのライセンス ライブラリ本体(例:OpenCV・TF.js のライセンス)に加え、読み込む学習済みモデルファイルごとに公式条項(再配布・商用・クレジット表記)を確認し、NOTICE および サードパーティライセンス概要・施設向け資料へ反映する。
医療判断の位置づけ 色差・面積差・スコア等は職員の観察を補助する参考情報に限る。診断・治療方針の代替にはならないことをプライバシーポリシー・利用規約・画面上で明記し、最終判断は人間(職員・医療者)とする(AI補助)。

PPTXスライド4(外部API)への貼り付け例(箇条書き): OpenCV.js または TensorFlow.js(ブラウザ内処理)/機械学習モデルはモデル単位でライセンス確認/用途は医療判断の補助に限定(最終判断は人間)。

4. 知的財産窓口用メモ(アルゴリズムの概要)

自社側で工夫している部分の例:キーワード一覧、Geminiへの日本語指示(プロンプト)、統計の集め方(食事は1日あたり朝昼おやつの平均など)、距離から信頼度へ変換する式、AES暗号での特徴量保存、しきい値、PDFの見せ方など。

第三者のモデル:Geminiの内部計算・学習済み顔認識モデル本体はベンダ側。利用条件はGoogle・ライブラリのライセンスに従います。public/docs/third-party-licenses-ja.html も参照。

5. 関連ドキュメント

※表現は2026年時点の実装理解に基づく説明用資料です。契約・法務の最終判断は専門家に依頼してください。