動的ドロップダウンによる予約管理

動的ドロップダウンによる予約管理

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件  

患者が担当医との予約をオンラインで行えるようにします。

ユースケース  

あるクリニックが、予約システムをデジタル化したいと考えています。 複数の専門医が在籍しており、予約可能な日付と時間帯もさまざまです。各予約は30分です。フォームは2つあり、1つは来院する医師の専門分野と対応可能時間を登録するためのDoctorフォーム、もう1つは予約を受け付けるためのAppointment フォームです。
 
動作イメージを見る

手順  

1. フォームを作成 し、以下の詳細を設定します。
フォーム
フォームリンク名
項目タイプ
項目名
項目リンク名
Doctor
Doctor
名前
Doctor 名前
Doctor_Name
ドロップダウン
Specialization
Specialization
時間
From
From
時間
To
To
Appointment
Appointment
名前
Patient 名前
Patient_Name
電話番号
電話番号
Phone_Number
ルックアップ (Doctor)
Doctor 名前
Doctor_Name
ドロップダウン
日付 of Appointment
Date_of_Appointment
ドロップダウン
Appointment Slot
Appointment_Slot

Specialization の選択肢に、いくつか専門分野の項目を追加します -> (一般, Gynacology, Obstetrics, Neonatalogy, Pediatrics, Dermatology, Ophthalmology, Cardiology, Pulmonology).
 
2. Doctor フォームにいくつかデータを追加します。
 
3. 次に、 Appointment の日付 項目に日付を自動入力するワークフローを作成します。 Appointment フォームでは、患者は今後 5 日間の予約のみ行えるようにします。これを実現するため、 Appointment フォームの読み込み時に実行されるワークフローを作成します。
 
4. 新しいアクションを追加 をクリックし、以下のコードを Deluge エディターに追加します。
  1. //翌日から予約を受け付ける
  2. startDate = Zoho。currentdate。addDay(1);

  3. //今後 5 日間の予約を許可する
  4. endDate = startDate。addDay(4);

  5. //日付をループ処理し、「Appointment の日付」のドロップダウン項目に追加する。必要なのは今後 5 日分のため、リストに 5 要素を追加している。さらに多くの日付を追加する場合は、「注意事項」を参照。
  6. list = {1,2,3,4,5};
  7. for each index l in list
  8. {
  9. input。Date_of_Appointment:ui。追加する(startDate。toString());

  10. //次の日付を取得するために startDate を更新
  11. startDate = startDate。addDay(1);
  12. }
 
5. 同様に、 Appointment の日付 が選択されると、その日付において選択した医師が対応可能な時間枠を、 Appointment Slot 項目に自動入力する必要があります。
 
6. 新しいアクションを追加 をクリックし、以下のコードを Deluge エディターに追加します。
  1. //選択した医師の詳細を取得
  2. doctor = Doctor[ID == input。Doctor_Name];

  3. //選択した医師の診察時間を取得
  4. 差出人 = doctor。差出人;
  5. to = doctor。To;

  6. //診察時間数を取得
  7. diff = 差出人。hoursBetween(to);
  8. selectedSlots = List();

  9. //選択した医師・日付について、すでに予約済みの時間枠を取得
  10. for each d in Appointment[Doctor == input。Doctor_Name && Date_of_Appointment == input。Date_of_Appointment]
  11. {
  12. selectedSlots。追加する(d。Appointment_Slot);
  13. }

  14. //各予約は 30 分と想定しているため、時間数に 2 を掛ける
  15. //diff * 2 個分のスペースを 1 にパディングし、そのスペースを 1 に置き換えている。これにより、患者が選択できる diff * 2 個分の時間枠を From から追加できるようになる。
  16. //以下のリストは、後続のループの反復回数を制御するために使用する。
  17. list = leftpad('1',diff * 2).replaceAll(' ','1,').toList();
  18. for each index a in list
  19. {

  20. //すでに他の患者により選択されている時間枠と同じでない場合のみ、時間枠を追加する
  21. if(!selectedSlots。contains(差出人。toString()))
  22. {
  23. input。Appointment_Slot:ui。追加する(差出人);
  24. }

  25. //30 分を加算して次の時間枠を取得
  26. 差出人 = 差出人。addMinutes(30);
  27. }

動作を確認する         

           

注意事項  

  • さらに多くの日付を追加する場合は、以下のコードを参照してください。
  1. startDate = Zoho。currentdate。addDay(1);

  2. //今後 30 日間の予約を許可する
  3. endDate = startDate。addDay(30);
  4. list = leftpad('1',30).replaceAll(' ','1,').toList();
  • なお、 From および To の項目タイプは、 Doctor フォームでは 時間です。そのため、時間差の計算が少し難しくなる場合があります。これらを 日付-時間 項目として設定することも可能です。