新增基礎值記錄
我顧的動物
我今日的記錄
其他基礎值
新增尿量
本班尿量
全部結算總覽
動物入院
新增病例
動物列表 0
動物清單
查詢
送出院
住院期間記錄
進階設定
點選小卡進行設定
失敗紀錄(雲端 20 次都沒收到的資料)
這些是過去 queue 20 次 retry 都失敗的資料。系統會自動比對雲端是否已有相近 entry:✅ 已補上 = user 已重新輸入並上雲;⚠ 未處理 = 雲端還是沒有,請追蹤 user 補資料。
上傳失敗,雲端沒收到
下方資料嘗試上傳 20 次都失敗,雲端目前沒有這幾筆。
本機畫面雖然還看得到,但 其他人手機 / 帳號完全看不到。
請手動刪除本機那幾筆,然後重新輸入。
📌 預防:避免「同一帳號在兩支手機同時登入」。連線異常時可試 滑掉 APP 重新開啟。
待同步資料(卡在本機沒上雲)
本機已存但推到雲端失敗的資料。立刻重試讓它再試一次(auth 恢復後通常會成功)。若重試仍失敗,建議滑掉 APP 重新開啟(重新登入更容易拿到有效的雲端連線)。放棄從 queue 移除(本機資料還在)— 只在 user 已重 key 過、確定不要這筆再上雲時用。
強制全院重整
按下後,所有開著的裝置(含登入頁)會收到通知並在 30 秒倒數後自動重新整理拿到最新版。
未按「儲存」的表單內容(基礎值 / 尿量 / 新增動物)會遺失。建議先在 LINE 通知一聲,員工有時間把寫一半的存好。
系統即將更新
秒後自動重新整理
寫到一半請先按儲存
事件紀錄(誰幾點做了什麼)
垃圾桶(最近 30 天刪除的資料)
點「 還原」會把資料復原。動物還原後,該動物的基礎值記錄不會自動還原(要分別還原)。
員工管理
管理診所員工帳號與通訊錄。已核准可登入;待核准是員工自助註冊後等 admin 同意;待開帳號是 admin 預先記下的員工,等對方用同名註冊會自動配對。
LINE 用量一覽
LINE Messaging API 每月推播訊息上限,達上限會回 HTTP 429,需升級方案或等下個月重置。 詳細統計、方案調整可至 LINE Official Account Manager。
資料備份與還原
動物 / 基礎值 / 認領等都存在 Supabase 雲端,本機僅為離線快取。
此功能用於匯出 JSON 快照(自帶資料 + 結構),方便備份或遷移到其他平台。
LINE 整合
預設「 送 LINE」按鈕只把訊息複製到剪貼簿,自己貼到 LINE。
若你建好 LINE Bot + Supabase Edge Function proxy 後,貼上 webhook URL 並啟用「直送」,
系統會直接 POST 到 LINE 群組(無需手動貼)。失敗時自動 fallback 複製。
直送設定
怎麼建立 LINE Bot + Supabase Edge Function(一次性 setup)
- 到 LINE Developers 建立 Provider → Channel (Messaging API)
- 在 Channel 「Messaging API」分頁取得 Channel access token (long-lived)
- 把 Bot 加為診所 LINE 群組成員(在 Channel 設定取得 Bot 的 QR code 或 ID 邀請進群)
- 在群組裡發一句話 → 到 LINE Developers → Webhook 看 log,找出 群組 ID(C 開頭);或用 LINE Bot Designer 工具抓
- 到 Supabase Dashboard → Edge Functions → New function,名稱
line-send - 貼下面這段 TypeScript,並到 Project Settings → Edge Functions → Secrets 設
LINE_TOKEN= 你的 Channel access token - Deploy 後拿到 function URL,貼到上方「Edge Function URL」欄位 + 群組 ID + 勾「啟用直送」+ 儲存 + 測試
// supabase/functions/line-send/index.ts
import { serve } from "https://deno.land/std@0.168.0/http/server.ts";
const TOKEN = Deno.env.get("LINE_TOKEN")!;
const CORS = {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods": "POST, OPTIONS",
"Access-Control-Allow-Headers": "authorization, content-type",
};
serve(async (req) => {
if (req.method === "OPTIONS") return new Response("ok", { headers: CORS });
try {
const { to, text } = await req.json();
if (!to || !text) return new Response(JSON.stringify({ error: "missing to/text" }),
{ status: 400, headers: { ...CORS, "Content-Type": "application/json" } });
const r = await fetch("https://api.line.me/v2/bot/message/push", {
method: "POST",
headers: { "Content-Type": "application/json", "Authorization": "Bearer " + TOKEN },
body: JSON.stringify({ to, messages: [{ type: "text", text }] }),
});
return new Response(await r.text(), { status: r.status,
headers: { ...CORS, "Content-Type": "application/json" }});
} catch (e) {
return new Response(JSON.stringify({ error: String(e) }),
{ status: 500, headers: { ...CORS, "Content-Type": "application/json" } });
}
});
這個 function 接收 {to, text} JSON,server-side 帶上 token 打 LINE API(避開瀏覽器 CORS 限制)。
雲端歸檔(Google 試算表)
第一次設定步驟(點開)
- 到 Google Drive 建一個資料夾,命名「基礎值出院記錄」(每次出院的試算表都會放這)
- 進到資料夾內,右鍵 → Google 試算表 → 建立新的試算表(這份是「控制台」,命名隨意,例如「_控制台」)
- 選單列:擴充功能 → Apps Script
- 把編輯區所有預設程式碼刪掉,貼下面那段程式碼
- 右上角「部署」→「新增部署作業」→ 類型選「網路應用程式」
- 「執行身分」選「我」,「誰可以存取」選「所有人」→ 部署
- 第一次會跳權限請求,按「授權存取」→ 選你的 Google 帳號 → 進階 → 前往「未經驗證」→ 允許(會請求 Sheets + Drive 權限)
- 複製出現的「網路應用程式」URL(結尾是
/exec) - 貼到上面 Webhook URL 欄位 → 儲存 URL → 按「測試連線」
- 到控制台試算表確認有新增一列
__TEST__即成功
動物名 病歷號 出院YYYY-MM-DD
系統資訊
危險區(不要隨便點開)
只有在你確定要從零開始時才用。
強烈建議按之前先到「 資料備份與還原」匯出 JSON 備份。