歯科医院の「リコール(定期検診の呼び戻し)」を、院長の頭の中から仕組みへ移すWebアプリ。前回来院日とリコール間隔から次回の目安日を自動で計算し、その日が来た患者さんを毎朝トップ画面に並べる。連絡手段はメール・SMS・ハガキ印刷の3つで、いずれも同じ患者台帳の上で完結する。
実際のアプリを開く ↗💻 **ログイン不要の公開デモ版を用意済み、デプロイ待ち。** 実体は `C:\Users\utsus\Desktop\AIの作業場\shika-recall-demo\apps\web`(架空データのみ・DBの接続情報を1つも持たない)。Vercelプロジェクト `shika-recall-demo` を新規作成してデプロイすると、この url を公開URLへ差し替えて urlStatus を `demo` にできます。手元で確認する場合、デモ版は `npm run build` 後 `npm start`(ポート3121)、本体は `C:\Users\utsus\Desktop\AIの作業場\shika-recall\apps\web` で `npm run dev -- -p 3003` を実行してください。
保存場所: C:\Users\utsus\Desktop\AIの作業場\shika-recall\apps\web
リコール率は歯科経営の最重要指標だが、多くの医院では「3ヶ月後にご案内」が院長の記憶か手書きのハガキで回っている。地方都市の歯科医院を調べたところ、そもそもWebからの問い合わせ導線が無い医院も少なくなく、IT化の余地は大きい一方で、導入のハードルは「使えるかどうか」より「見て分かるかどうか」にあった。
そこで、新しいUIを発明せず、歯科医院の人が既に見たことのある画面へ寄せる方針を取った。期限を扱う画面はiPhoneの「リマインダー」(期限切れが赤字で最上部)、ハガキ印刷は年賀状ソフトの宛名面プレビュー、管理画面の土台は国内の会計ソフトの一覧画面。パソコンが苦手な院長でも初見で分かることを狙っている。
歯科医院の受付スタッフと院長が、診療の合間の数分で触ることを前提にしている。
紙の台帳やエクセル、あるいは院長の記憶だけでリコールを回している医院を、そのまま置き換えられる形にしている。
①トップは「今月呼び戻す人」。予定日を過ぎた人が赤枠で最上部に出る。

「予定日から91日経過」と経過日数が出るので、どれだけ放置しているかが数えなくても分かる。「今この方を出している理由」を1行で添えているので、受付が院長に確認しなくても電話できる。
行のボタンは上下2段に分けてある。上段の[電話をかける][SMSを送る]は端末が動くボタン、下段の[つながった][不在][予約が取れた]は記録が残るボタン。ここを1つに混ぜると、かけ直すたびに記録が増えるか、記録し忘れるかのどちらかが必ず起きる。
②スマホ幅(375px)でもそのまま使える。受付カウンターで立ったまま片手で押せる大きさにしてある。

下部のタブで「今月呼び戻す人 / 患者一覧 / ハガキ印刷 / 設定」を行き来する。横スクロールが発生する要素は0件。
③ハガキは、印刷ボタンの前に必ず宛名面のプレビューを挟む。

A4 8面のラベル用紙に、実際に刷られる位置そのままで宛名が並ぶ。年賀状ソフトの宛名面と同じ見え方にしてあるので、高齢の院長にも説明がいらない。点線は画面だけのもので、紙には出ない。刷り終わったあとに[印刷できた]/[まだ印刷していない]を選べるので、用紙切れで途中停止しても「送ったこと」にならない。
④効果は折れ線1本だけで見る。数字タイルを並べたダッシュボードは意図的に作っていない。

「その月にご案内した人のうち、60日以内に来院した人の割合」を月次で表示する。判定期間がまだ終わっていない月は、線を引かずに理由を明記する — 分からないものを0%として描かないため。
紙とスマホの両方を1本で面倒みる。 歯科のリコールは、若い患者さんはSMS、高齢の患者さんはハガキ、と手段が割れる。片方だけのツールは「結局その人には出せない」で止まる。メール・SMS・ハガキ印刷が同じ患者台帳の上で完結するので、医院側は1つの画面で全員を追える。高齢の患者さんが多い医院ほどハガキが効く。
受付が迷わない作り。 「行動するボタン」と「記録するボタン」を必ず分ける、住所が無い人は黙って落とさず理由を出す、判定期間が終わっていない月は線を引かない — 現場で困る箇所を先に潰してある。デモで1分見せれば伝わる種類の差になっている。
営業の入口として強いテーマ。 リコール率は院長が自分で数字を言える数少ない指標で、「今のリコール率、把握されていますか」から入ってそのまま画面を見せられる。
規約と法令を前提に置いた設計。 要配慮個人情報(病名・保険者番号など)は最初から列として持たない。送信ログの宛先は平文で残さない。医療広告ガイドラインの禁止語チェックを組み込み、自費診療の広告に必要な併記項目も設計に織り込んである。
技術構成: Next.js 16 / React 19 / TypeScript / Tailwind v4 / Supabase(RLS有効) / Vercel Cron。画面7ルート、API 6本、専用テーブル5本、約12,000行。型チェック981ファイル0エラー、静的検査PASS 74・FAIL 0、単体テスト56件、実起動での全ルート検査PASS 26、375px幅の横はみ出し0件。
現在はローカル環境でのみ動作。本番公開は準備中です。掲載している画面はすべて架空のデータによるものです。