見出し画像

31. 今更ながらの予約管理

恥ずかしながら、WineStyle(VintageWine)には予約管理のツールがありませんでした。他のシステムとの連携で必要なユーザには使ってもらっていました。今まで作らなかったのは、私自身に逼迫する必要がなかったのが大きな原因でしょう。もちろん何度か作成も試みましたが、大袈裟な構想をねり、そのための意欲がわかず開発初期で飽きてしまったことが問題でした。

今回、発想の転換に至り、短期間で機能の実現が出来ました。受付機能に院内での患者さんの現在のステータス、例えば診療が終わって会計待ちなのか、診療が終わって検査を受けているところでまだ会計待ちに至らないのかなど、いわゆるアリバイ情報のステータスを追加したばかりでした。それからひと月ほどしたある日、ふと思い立ったのです。このステータスを使って、予約ステータスを独立させよう。予約の編集に、予約枠を自由に設定できるようにして、空き枠の視覚表現や空き枠への移動が簡単に行えるように、空き枠への登録がドラッグ&ドロップで行えることなどなど。

使用するクラスは今までEOObjectのEOWRAcceptance classこのクラスに備わっている多様な機能を使え、ViewControllerがこのクラスをうまく使える方法もできている。ただし、このViewControllerの元で使うには、空き枠は違う表現をもちかつデータベースに保存するものではないので、サブクラスとしてReservationAcceptanceクラスを開き枠の表現として、サブクラスでの追加のメソッドは一つだけで実現することが出来ました。

ViewControllerは新しい、予約専用のクラスを作り、そのviewがタイトルの画像です。

対象となるDrを選択、枠は何分、10分、15分、20分などから設定し、開始と終了の時刻も設定されます。患者情報を枠にドラッグすればその枠で予約され、ウィンドウにドラッグすれば、空いているところに自動的に入ります。患者を選択して時計のViewで時間を変えたり、ドラッグして他の空き領域移動させれば、予約時刻を変更できます。予約当日になれば、担当医師の受けつにリストが表示され、実際に患者さんが来院されれば、そのステータスが変更されるという仕掛けです。

遅ればせながらの機能をスマートに実現できたというお話でした。

この記事が気に入ったらサポートをしてみませんか?