ガイドライン理解度テスト 引き継ぎ資料

プロジェクト: guideline-quiz | 作成日: 2026-03-15

📋実装状況サマリー

機能状態備考
スタート画面(氏名・職種入力)完了app/page.tsx
クイズ画面(1問ずつ表示)完了職種別問題セット対応済み
結果・解説確認画面完了全選択肢+間違い理由の表示に改善済み
管理者ダッシュボード完了CSVエクスポート対応
回答送信API完了SQLite保存
解説確認API完了confirmed_at更新
未確認アラートAPI完了10分タイムアウト+離脱検知
メール送信(nodemailer)完了SMTP設定が必要
職種別問題データ完了リハ職/医師看護師/事務の3カテゴリ
.env.local 設定手動下記参照
本番デプロイ未着手Vercelまたは院内サーバー

✍️残っている手動作業

1. .env.local の作成(必須・最優先)

プロジェクトルートの env.local.example をコピーして設定してください。

cd C:\Users\kawag\work\guideline-quiz
copy env.local.example .env.local

設定項目:

変数設定内容
SMTP_HOSTsmtp.gmail.com
SMTP_PORT587
SMTP_USER送信元Gmailアドレス
SMTP_PASSGmailアプリパスワード(16文字)
ADMIN_EMAILアラート送信先メールアドレス
ADMIN_KEY管理画面アクセス用の秘密キー(任意の文字列)

2. Gmailアプリパスワードの取得

3. 動作確認

cd C:\Users\kawag\work\guideline-quiz
npm run dev

確認ポイント:

4. 本番デプロイ(将来)

注意: better-sqlite3はサーバーレス環境(Vercel)では動作しません。 本番運用時は以下のいずれかを検討してください:
  • 院内サーバーでNode.js直接実行(推奨)
  • DBをSupabase/Turso等に移行してVercelデプロイ
  • Docker化して院内サーバーにデプロイ

5. 問題内容の確認・修正

📝職種別問題構成

共通3問 + 職種別2問 = 計5問

臨床職 = リハ職(PT/OT/ST)+ 医師  |  窓口職 = 事務 + 看護師

問題共通臨床職
(リハ+医師)
窓口職
(事務+看護師)
Q1: 院内ID = 個人情報?
Q2: インシデント発見時の初動
Q3: 全体連絡メールの匿名化レベル
Q4: 私物PCでの業務データ取扱い
Q4: FAX誤送信防止の正しい手順
Q5: データ分析でのAI利用ルール
Q5: 患者家族からの電話問合せ対応

🔎結果画面の改善内容

改善前

改善後

📁ディレクトリ構成

guideline-quiz/
├── app/
│   ├── page.tsx              # スタート画面
│   ├── quiz/page.tsx         # クイズ画面(職種別問題対応)
│   ├── result/page.tsx       # 結果画面(全選択肢+間違い理由表示)
│   ├── admin/page.tsx        # 管理者ダッシュボード
│   ├── layout.tsx
│   ├── globals.css
│   └── api/
│       ├── submit/route.ts   # 回答送信
│       ├── confirm/route.ts  # 解説確認
│       ├── alert/route.ts    # アラート送信
│       └── results/route.ts  # 結果一覧(管理者用)
├── lib/
│   ├── db.ts                 # SQLite
│   ├── questions.ts          # 問題データ(職種別)
│   └── mailer.ts             # メール送信
├── env.local.example         # 環境変数テンプレート
├── quiz.db                   # DBファイル(自動生成)
└── README.md
  

⚠️注意事項

このアプリに患者情報を入力しないでください。
受験者の氏名・職種は施設内部管理目的でのみ使用します。