3ステップで完結
薬剤師と薬局、それぞれの操作を並べて解説

QRコードを表示
マイページの「QR表示」ボタンを押すと、薬剤師ID・マッチングID・タイムスタンプを暗号化したワンタイムトークンが生成されます。
QRをスキャンする
薬剤師が表示したQRコードを、薬局のスマホカメラで読み取ります。ブラウザから直接スキャンが可能です。
薬局に見せる
生成されたQRコードを薬局担当者に見せます。QRはスクリーンショット対策として1分ごとに自動更新されます。
サーバーで検証
有効期限・マッチング予定・二重出勤の3項目を瞬時にチェック。すべてクリアで「出勤」として記録されます。
自動で出勤確定
薬局がスキャンすると即座に検証完了。出勤時刻が自動記録され、マイページに「勤務中」と表示されます。
実績承認で確定
退勤時も同じくスキャン。2回目は「退勤」として記録され、実働時間と概算給与が自動計算されます。
QR勤怠の鉄則
QRは直前に出す
セキュリティ対策として、QRコードは1分ごとに自動リフレッシュされます。過去のQRを使い回す不正を完全に防止。
読み取りは薬局側
薬剤師はQRを「見せる」だけ。カメラを構えてスキャンするのは薬局担当者です。役割を明確に分けることで混乱を防ぎます。
最後は承認ボタン
退勤時のスキャン後、薬局側が「実績承認」ボタンを押して初めて勤務が確定。承認後に相互評価画面へ進みます。
出勤と退勤の違い
同じQRスキャンでも、システムが自動で判別します
- status が working(出勤中)に更新
- actual_start_time にスキャン時刻を記録
- 薬局側画面に「勤務中」と表示
- 双方へ「出勤を確認しました」通知
- status が completed(勤務完了)に更新
- actual_end_time にスキャン時刻を記録
- 実働時間と概算給与を自動計算
- 薬局側に「実績を承認しますか?」を表示
セーフティロジック
「カメラが壊れた」「ネットが遅い」そんな時も大丈夫
GPS連動(オプション)
薬局の半径設定メートル以内にいないとQRが表示されないように設定可能。自宅からの「なりすまし出勤」を封じます。
1分自動リフレッシュ
QRコードは1分ごとに自動で新しいトークンを生成。スクリーンショットを撮っても、すぐに無効になります。
手動打刻の承認制
QRが読めない時は薬剤師がリクエスト、薬局が承認。両者の合意がないと記録されない仕組みで、不正を防ぎます。
プッシュ通知
出勤・退勤が確定すると、薬局と薬剤師の双方にスマホへ即座に通知。誰がいつ打刻したか、双方で認識を共有。
よくあるトラブルと対処法
カメラが起動しない場合
ブラウザのカメラ権限を許可してください。iPhoneの場合はSafariの設定 > カメラ > 「許可」を確認。AndroidはChrome > 設定 > サイト設定 > カメラから許可できます。
QRが表示されない場合
① 当日のマッチングが確定しているか確認 ② GPS連動がONの場合、薬局に近づいているか確認 ③ 画面をリフレッシュしてみてください。
どうしても読み取れない場合
管理画面から「手動打刻承認」が可能です。薬剤師側が手動打刻リクエストを送信し、薬局側が承認ボタンを押せばOK。QRトラブルでも現場は止まりません。
どうしても読み取れない場合は、管理画面から手動入力も可能
QRスキャンが不可能な場合、薬局の管理画面から手動で打刻時刻を入力できます。 その場合、薬剤師側にも承認リクエストが送信され、双方の合意がないと確定しないため、 信頼性は損なわれません。現場の柔軟性とセキュリティの両立を実現しています。
システム全体の流れ
QR勤怠がデータベースと連携する仕組み
QR生成
薬剤師ID + マッチングID + タイムスタンプ + 位置情報を暗号化
QRスキャン
薬局がカメラで読み取り。有効期限・マッチング・状態を検証
DB更新
Firestoreのmatchesテーブルに出勤/退勤を即座に記録
通知送信
薬局・薬剤師双方へプッシュ通知で打刻確認を共有