system-overview-ip-and-apis-ja.html)を、エクスプローラーでデスクトップの day-service-app\public\docs\ から探し、Googleドライブのフォルダにドラッグ&ドロップしてください。ブラウザで開くと図も含めてそのまま読めます。印刷→PDF保存も可能です。
混同しやすいので、役割を分けて考えてください。
| 名前(例) | 置き場所の例 | 何をするものか |
|---|---|---|
| 紹介用サイト(LP) | フォルダ tsunagarucho-HP など |
サービス説明・申込導線・動画。利用者の記録やAIはここにはありません。いわゆる「看板」です。 |
| アプリ本体(実際に記録する場所) | フォルダ day-service-app、本番URL例 tsunagarucho.jp |
職員・家族がログインし、バイタル記録、共有、PDF、顔認証、AI補助などが動く本体プログラムです。 |
たとえるなら、LPは店の外看板、day-service-appは店内のレジ・記録システムです。窓口で「アルゴリズムを」と言われた場合の主な対象はアプリ本体側です。
利用者のスマホ・施設のPCから見た、ざっくりした流れです。
[紹介サイト 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)。補助であり診断の代替ではない旨を規約・画面に明記。
重要「外部」とは、貴社のサーバー(Vercel上の/api)から、第三者のクラウドへ送る内容を指します。Supabaseは貴社が契約するBaaSなので別枠で記載します。
アプリの「裏側の小さなサーバー」が、環境変数のAPIキーを使って Google にリクエストします。利用者のブラウザから直接APIキーを送る想定ではありません。
GEMINI_PAID_PLAN_CONFIRMED によるガードを入れています。| きっかけ(アプリ内機能) | エンドポイント(自社側) | Geminiへ実質送られる主な内容 |
|---|---|---|
| 申し送り案・汎用テキスト生成 | POST /api/gemini |
|
| 「母語→介護記録向け日本語」翻訳ボタン | POST /api/gemini(同上) |
固定の役割説明(systemInstruction)+ユーザーが入力した原文テキスト全文。 |
| メンタルヘルス参考(リスク参考情報) | POST /api/mental-health |
residentId・氏名などの識別子はGeminiの本文プロンプトには含めず、テキスト記述と数値トレンドのみを送ります。これらIDは主に自社のSupabaseへの保存に用います。
|
| 尿・便・皮膚の写真分析(画面名が Med系) | POST /api/image-analysis |
|
Google ではなく、本アプリがホストする /api/* が Supabase(RPC・Storage 署名付き URL・テーブル INSERT/UPDATE)にアクセスします。ピクセル演算の本体はブラウザ内の OpenCV.js です。
| 機能 | エンドポイント(自社) | サーバー・端末で扱う主な内容 |
|---|---|---|
| 前回画像の取得準備 | POST /api/image-change-detection |
tenantId / residentId / currentRecordId、prepareOnly 等。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_messages へ is_urgent で INSERT(Gemini 不使用)。SUPABASE_SERVICE_ROLE_KEY 必須。CRON_SECRET 設定時は Authorization: Bearer が一致しないと 401。 |
「外部」の一種ですが、貴社のアプリがデータを保管する正式な場所です。送信される項目は機能により異なり、例として以下が含まれ得ます。
| 通信の種類 | 送られる可能性があるデータの例 |
|---|---|
| ログイン(認証) | メールアドレス、パスワード(HTTPSで)、セッション用トークン |
| 日次記録の保存・取得 | 利用者ID、体温・血圧・食事率・様子メモ・服薬チェックなど、フォーム項目に対応するフィールド |
| 顔認証まわり | 暗号化された顔特徴量、同意ログ、照合結果ログ(成功/失敗・信頼度スコアなど) |
| メンタル参考APIの結果ログ(任意) | リスク区分、要因リスト、説明文、推奨アクション、信頼度、どの入力が使われたかのフラグ |
| 予兆アラート(職員チーム連絡) | team_messages に保存される通知本文(利用者名・検知理由の要約・重複抑止用マーカー) |
| 画像変化検知(職員向け) | 検知スコア・説明テキスト、前後の記録 ID・画像パス、職員の判定(staff_action)・監査用ログ行 |
アプリは SpeechRecognition というブラウザの標準機能を呼び出します。音声そのものがどのクラウドに送られるかは、Chrome / Safari / Edge の実装と利用者の設定に依存します(多くはGoogle等の音声認識バックエンド)。アプリ側のソースに「音声APIキー」は通常ありません。
| 項目 | 内容 |
|---|---|
| アプリから外部へ渡るもの(概念) | マイク入力の音声ストリーム → ブラウザ/OSが選ぶ音声認識サービスへ(ベンダ依存) |
| アプリが受け取るもの | 文字起こしされたテキスト(結果文字列) |
顔認証周りで、スクリプトをCDNから読み込む経路があります。これはプログラムファイルの取得であり、個人の記録本文を送ることとは別です。
画像変化検知: OpenCV.js を docs.opencv.org 等の CDN から読み込みます(プログラム取得)。比較対象の画像バイトは、多くの経路で Supabase の署名付き URL 経由でブラウザが取得します。
知財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補助)。 |
自社側で工夫している部分の例:キーワード一覧、Geminiへの日本語指示(プロンプト)、統計の集め方(食事は1日あたり朝昼おやつの平均など)、距離から信頼度へ変換する式、AES暗号での特徴量保存、しきい値、PDFの見せ方など。
第三者のモデル:Geminiの内部計算・学習済み顔認識モデル本体はベンダ側。利用条件はGoogle・ライブラリのライセンスに従います。public/docs/third-party-licenses-ja.html も参照。