ブログ
診療予約を行うカレンダー画面の表示速度を改善した話
2024年7月3日 テックブログ
弊社では、既存の事業としてLINEを用いたオンライン診療プラットフォームの開発を行っており、今回は、そのプロダクトに関する診療予約を行うカレンダー画面の表示速度を改善したプロジェクトをご紹介させていただきます。
開発メンバー
全体のスケジュールとしては、2024年2月に事業モニタリング会(隔週で事業KPIやOKRの進捗を確認する会議)より発案し、エンジニアが調査をしたところ、シフト枠の読み込みが未来のシフト全てとなっていることが判明しました。
これを受けて、バックエンドとフロントエンドに対応範囲と方針を明確にし、1週間ごとにシフトを読み込むようにする方針で、検証と実装を行いました。結果2024年3月にはリリースが完了し、安定して稼働できるようになりました。
表示速度の改善に至った経緯
そもそも、なぜカレンダー画面の表示速度を改善したのか、というと以下のような経緯になります。
- 事業モニタリング会において、今期秋頃に予定している大型アップデートに先駆け、対象デザインのレビューをモニターリングメンバー全員で行い、改善点のアイデア出しを行っていた。
- プロダクトを操作している中で、予約カレンダー画面の表示に12〜13秒ほど時間がかかっており、「これは遅いですね」という話題が出てきた。
- 会議終了後にエンジニアに確認をしたところ、シフト枠の読み込みが「未来のシフト全て」となっていることが明らかになる。未来のスケジュールを全て読み込んでいるので、表示速度が遅れていることが確認された。
患者体験という視点に立つと、カレンダー画面の表示が遅いことで、精神科や心療内科の受診を控えているにも関わらず、より一層ストレスのかかる体験になってしまっていたこと、
また、プロダクト視点に立つと、表示速度の遅さが予約可能な状況であっても予約を断念されてしまう結果を生み、予約率の低下につながるという問題が明らかとなりました。
以前の仕様
以前の仕様では、
- 医師の空き枠を全て1つのリクエストとして取得していた。
- 全ての医師の全ての空き枠を取得していた。
- カレンダーの日付一覧表が120日間になっていた。
という「カレンダーから予約」の機能で利用しているAPIがSQLを複数回実行するため、初回画面であるカレンダーの表示だけで12〜13秒ほど時間がかかってしまっていました。
実際の画面は、こちら
LINE登録後のリッチメニュー↓
患者さまが診療予約を行うカレンダー画面↓
改善案の仕様
患者さまの体験や事業のKPIにも大きく関与しそうとのことで、早急に要件定義を行いましたが、主な仕様の変更点は以下のとおりです。
- 診察をSlot単位で管理しているが、受診タイプの再診のみ、リクエスト単位を修正した。
- 表示される週の中で、空き枠がある日付の一覧を取得するAPIを追加した。
- 上記の一覧から選ばれた1日分のみ、空き枠を取得するように空き枠の取得リクエストを変更した。
また、リクエスト時のパラメータやAPIが変更となるため、変更対応も行いました。
リリース時には、仮にエラーが発生しカレンダー表示が止まってしまうと、新規のみならず既存の患者さまにも影響を及ぼす可能性があります。そのため、リクエスト先の変更に伴い、リリース手順をバックエンドとすり合わせること、UIやUIのインタラクション変更は仕様に含まれていないので、改善前と同じ操作を患者が行えるかに注意しながら慎重に本番リリースを行いました。
改善後の結果
結果的に、カレンダー表示は、12~13秒から2~3秒に短縮することができ、患者体験にポジティブな影響を及ぼすことができました。また、最終的に予約率も+ 4.5%程度、改善させることができました。
事業KPIはもちろんのことですが、弊社のミッションである”心を照らす医療”を拡張することを実現し、精神科、心療内科受診を控えている患者さまに対して、少しでも負担を軽減できたと考えています。
コメント
カレンダー表示が遅い事を発見するのに少し時間がかかってしまったという点は改善すべきだと感じつつ、チームの意見を吸い上げ、結果的に患者さまや事業にインパクトのあるような改善ができたと思いました。