このチュートリアルタスクでは、救急治療室モデルの患者トラックをさらに構築して、ベースのオブジェクトやアクティビティを使用する追加練習を行います。
最初のチュートリアルタスクでは、アクティビティセットを使用してすばやく患者トラックのロジックを設定する方法を学習しました。このチュートリアルタスクでは、ユーザー独自のアクティビティブロックを構築してカスタムロジックを作成する方法を学習します。アクティビティのカスタムブロックを構築すると、人ベースモデルのロジックの作用がよりよく理解できます。
スタッフオブジェクトや場所オブジェクトをシミュレーションモデルに追加する方法についても追加練習を通じて学習できるほか、スタッフや患者がオブジェクトやフロアプランの壁部分を横切って歩かなくて済むようにA*ナビゲーションシステムを使用する方法を学習します。
作業が完了すると、シミュレーションモデルは次の画像のようになります。
これまでにアクティビティセットの1つを使用して患者トラックのロジックを作成する方法を学習しました。このステップでは、カスタムロジックをゼロから作成し、アクティビティを追加する方法を学習します。目標は[PatientTrack]処理フローでのトリアージフェーズの作成です。このフェーズでは、看護師が患者をトリアージエリアに連れて行くよう指示するロジックを設計します。
作業が終了すると、処理フローは次の画像のようになります。
現時点では、これらのアクティビティの追加と2つの処理フローへの接続のみを行います。後のステップで、プロパティを編集してロジックを追加します。
これらのアクティビティを追加して接続するには:
アクティビティ | 新しい名前 |
---|---|
場所を取得 | トリアージを取得 |
スタッフを取得 | トリアージ担当看護師を取得 |
付添人 | トリアージまで患者に付き添う |
処理 | 患者にトリアージを施す |
場所をリリース | トリアージをリリース |
アクティビティ | 新しい名前 |
---|---|
場所を取得(1つ目) | 待機エリアを取得 |
歩く | 待機エリアまで歩く |
場所を取得(2つ目) | トリアージを取得 |
場所をリリース | 待機エリアをリリース |
アクティビティ | 新しい名前 |
---|---|
場所リソース(1つ目) | 待機エリア |
場所リソース(2つ目) | トリアージ |
スタッフリソース | トリアージ担当看護師 |
処理フローがこのステップの冒頭に表示した画像のようになることを確認してください。
前のステップでアクティビティの独自のカスタムセットを構築したため、プロパティの一部については、アクティビティセットを使用したときの状態が自動で設定されなくなっています。アクティビティセットは、人ベースモデルのロジックを構築する時間を短縮するにはよい方法です。とはいえ必要に応じて独自のカスタムロジックを作成できるように、自力でアクティビティロジックを設定する方法を理解しておくことをおすすめします。このステップでは、このようなロジックを設定する方法がわかります。
このステップでは、患者トラックのトリアージフェーズのロジックを作成します。トリアージエリアが対応可能な場合は、看護師がトリアージエリアまで患者に付き添い、患者のバイタルを測定します。トリアージエリアが対応できない場合、患者は待機エリアで待つことになります。
処理フローのトリアージフェーズで書くアクティビティがどのように機能するかについて概要を以下に示します。
アクティビティまたは共有アセット | 説明 |
---|---|
待機エリア | この共有アセットはこれまでのステップで作成した[WaitAreas]グループにリンクします。 |
トリアージ | この共有アセットは3Dモデルに含まれる[TriageChair1]の場所にリンクします。 |
トリアージ担当看護師 | この共有アセットはこれまでのステップで作成した[RN]グループにリンクします。 |
トリアージを取得 | このアクティビティでは、[TriageChair1]の場所の確保を試みます。他の患者が[TriageChair1]の場所を使用している場合は、トークンが[待機エリアを取得]アクティビティに移動し、患者は待合室で椅子を見つけます。[TriageChair1]の場所を取得すると、このトークンは代わりに[トリアージ担当看護師を取得]アクティビティに移動します。 |
待機エリアを取得 | このアクティビティでは、WaitingArea1マルチロケーションの椅子の取得を試みます。場所が空いているとき、この患者トークンは[待機エリアまで歩く]アクティビティに移動します。 |
待機エリアまで歩く | WaitingArea1マルチロケーションの椅子を確保したら、このアクティビティから患者に対し、このアクティビティが取得した特定の椅子まで歩いて移動するよう指示が送られます。 |
トリアージを取得 | このアクティビティは、以前の[トリアージを取得]アクティビティとほぼ同一です。患者のために[TriageChair1]の場所の確保を試みます。場所が空いていない場合、トークンはどこかが利用可能になるまで、このアクティビティで待機します。場所が空くと、このトークンは[待機エリアをリリース]アクティビティに移動します。 |
待機エリアをリリース | このアクティビティで[WaitingArea1]の場所にある特定の椅子がリリースされ、他の患者が取得できるようになります。 |
トリアージ担当看護師を取得 | このアクティビティでは[RN]グループのメンバーを取得します。[RN]グループのメンバー全員が他のタスクに対応している場合は、誰か看護師が対応可能になるまで、このトークンがこのアクティビティで待機します。 |
トリアージまで患者に付き添う | その後、トリアージ担当看護師がトリアージエリアまで患者に付き添います。誰とどこに移動すべきかを患者に伝えるには、取得したトリアージ用の椅子とトリアージ担当看護師にユーザーがこのアクティビティをリンクする必要があります。 |
患者にトリアージを施す | このアクティビティは、患者がトリアージ処理の完了にかかる時間を表します。現時点ではその時間を20秒に設定します。 |
トリアージをリリース | このアクティビティで[TriageChair1]の場所はリリースされ、他の患者が取得できるようになります。 |
アクティビティのプロパティを編集するには:
2
を削除します。20.00
」と入力します。この時点でシミュレーションモデルを保存することをおすすめします。
前のチュートリアルタスクで言及したとおり、モデルを定期的にテストするのはよいやり方です。一般的に、すべてが想定どおりに機能することをテストするために、モデルのごく一部を構築してシミュレーションモデルを実行することをおすすめします。
患者フェーズは2つとも、特定のリソースが使用できない場合に、順番待ち列に並ぶか待機エリアに移動するように患者を促します。ロジックのこれらの部分が正常に機能しているかどうかをテストするためには、モデルに同時に複数の患者を追加する必要があります。このステップでは、[患者の到着]処理フローで一度に1人ではなく2人の患者を案内するようこの処理フローを調整します。
2
」に変更します。今度は次のとおりシミュレーションモデルをリセットして実行します。
モデルが実行されるのを確認すると、1人目と2人目の患者はそれぞれ病院に入り、順番待ち列まで歩きます。1人目の患者が登録している間、2人目の患者は順番待ち列で待ちます。看護師がトリアージエリアまで1人目の患者に付き添っている間に、2人目の患者が待合室に入ります。
看護師と患者に2点間の最短距離を通らせようとすると、歩いているうちにフロアプランの壁を横切ってしまうことに注意してください。この問題は後の方のステップで修正します。
このステップでは、人ベースの場所とスタッフオブジェクトをさらにモデルに追加することで、救急治療室の3Dオブジェクトをもう少し構築します。このステップでは、[オブジェクトを作成]モードを使用して、同じオブジェクトの複数のコピーを同時に追加する方法を説明します。
作業が終了すると、モデルは次の画像のようになります。
これらの追加3Dオブジェクトを追加するには:
180.00
に変更します。[Exam Table 4]についてもこのステップを繰り返します。-90.00
に変更します。シミュレーションモデルがこのステップの冒頭に表示した画像のようになっていることを確認します。
前のステップではシミュレーションモデルに新しい3Dオブジェクトをいくつか追加したため、モデルの拡張性を高めるため、これらの新しいオブジェクトのオブジェクトグループを作成する必要があります。このステップでは、新しい診察台に相当する[ExamRooms]という場所グループ、医師スタッフメンバーに相当する[MD]というスタッフグループを作成します。
追加のオブジェクトグループを作成するには:
この時点でシミュレーションモデルを保存することをおすすめします。
このステップでは、モデルにA*ナビゲーションを追加します。A*は、人があるオブジェクトから別のオブジェクトに歩くときに使用する、最も論理的なパスを計算するツールです。障壁を置くことで、人が本来歩かないような場所を歩くことを防ぎます(オブジェクトや部屋の壁を通過して歩くなど)。A *ナビゲータは、これらの障壁を考慮して移動に最適な経路を計算します。
このステップでは、モデルのオブジェクトのほとんどをA *ナビゲータに接続し、救急治療室の壁を表す障壁を作成します。これにより、スタッフや患者が壁やオブジェクトを通過して歩くといった、モデルの精度を低下させる現象を防ぎます。
モデルのA *ビジュアル設定がオンになっていると、次の画像のようになります。
これらの変更を行うには:
0.5
に減らします。シミュレーションをリセットして実行します。
これでモデルを実行すると、患者と看護師はオブジェクトや壁を通り抜けなくなりました。看護師は患者と一緒にトリアージエリアに移動する途中でフロアプランでフロントデスクや壁の周辺を歩きます。
このステップでは、患者トラックにアクティビティセットをもう1つ追加します。このアクティビティセットは「付き添って処理(または待機エリアに移動)」と言います。このアクティビティを使用して、対応可能な看護師がいる場合は診察室まで患者に看護師が付き添うようにします。このアクティビティには若干のカスタマイズが必要なため、ユーザーはこのステップのアクティビティを追加したり削除したりすることになります。
作業が終了すると、処理フローは次の画像のようになります。
現時点では、これらのアクティビティの追加と処理フローへの接続のみを行います。後のステップで、プロパティを編集してロジックを追加します。
これらのアクティビティを追加して接続するには:
アクティビティまたは共有アセット | 新しい名前 |
---|---|
待機エリア | 待機エリアに戻る |
場所 | 診察室 |
スタッフ | 診察担当看護師 |
場所を取得(左側) | 診察室を取得 |
患者に付き添う(左側) | 診察室まで患者に付き添う |
スタッフをリリース(左側) | トリアージ担当看護師をリリース |
患者に付き添う(右側の1人目) | 待機エリアまで患者に付き添う |
スタッフをリリース(右側) | トリアージ担当看護師をリリース |
場所を取得(右側) | 診察室を取得 |
スタッフを取得 | 診察担当看護師を取得 |
患者に付き添う(右側の2人目) | 診察室まで患者に付き添う |
スタッフをリリース | 診察担当看護師をリリース |
処理フローがこのステップの冒頭に表示した画像のようになることを確認してください。
このステップでは、前のステップで追加した新しいアクティビティのプロパティを編集します。これはアクティビティセットであるため、ほとんどのアクティビティはすでに正しく機能するように設定済みです。とはいえ前のステップで追加した新しいアクティビティなどに対し、若干の変更が必要です。
共有アセットとアクティビティが機能する方法の概要を次に示します。
アクティビティまたは共有アセット | 説明 |
---|---|
待機エリアに戻る | この共有アセットは[WaitAreas]場所グループにリンクします。 |
診察室 | この共有アセットは[ExamRooms]場所グループにリンクします。 |
診察担当看護師 | この共有アセットは[RN]スタッフグループにリンクします。 |
診察室を取得(左側) | このアクティビティでは、[診察室]の1つの取得を試みます。患者が[診察室]の場所すべてを現在、使用している場合は、トークンが[待機エリアを取得]アクティビティに移動し、患者は待合室で椅子を見つけます。[診察室]の場所の1つを取得すると、トークンは代わりに[診察室まで患者に付き添う]アクティビティに移動します。 |
待機エリアを取得 | このアクティビティでは、WaitingArea1マルチロケーションの椅子の取得を試みます。場所が空いているとき、この患者トークンは[待機エリアまで患者に付き添う]アクティビティに移動します。 |
待機エリアまで患者に付き添う | WaitingArea1マルチロケーションの椅子を確保したら、以前取得したトリアージ担当看護師に対しこのアクティビティから、待機エリアまで戻る患者に付き添うよう指示が送られます。 |
トリアージ担当看護師をリリース(右側) | このアクティビティでは、処理フローの早い段階で取得したトリアージ担当看護師をリリースします。その後、この看護師が他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。 |
診察室を取得(右側) | このアクティビティは、左側の[診察室を取得]アクティビティとほぼ同一ですが、最大待機時間の待機タイマーは使用しません。 |
待機エリアをリリース | このアクティビティで[WaitingArea1]の場所にある特定の椅子がリリースされ、他の患者が取得できるようになります。 |
診察担当看護師を取得 | このアクティビティでは[RN]グループのメンバーを取得します。[RN]グループのメンバー全員が他のタスクに対応している場合は、誰か看護師が対応可能になるまで、このトークンがこのアクティビティで待機します。 |
診察室まで患者に付き添う(右側) | 次は診察担当看護師が診察室まで患者に付き添います。 |
診察担当看護師をリリース | このアクティビティでは、処理フローの早い段階で取得した診察担当看護師をリリースします。その後、この看護師が他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。 |
診察室まで患者に付き添う(左側) | このアクティビティは右側の[診察室まで患者に付き添う]とほぼ同一です。ただしトリアージ担当看護師は、代わりに患者に付き添います。 |
トリアージ担当看護師をリリース(左側) | このアクティビティは、[トリアージ担当看護師をリリース(右側)]と同一です。 |
このロジックを構築するには:
モデルをリセットして実行します。
トリアージ処理を終了して待合室に戻ると、看護師は患者を診察室に連れて行きます。
これまでに救急医療室のシミュレーションモデルを作成しました。またそのモデルでは患者が登録を済ませ、処理にチェックインしました。次のチュートリアルタスクでは、カスタムの場所オブジェクトを作成する方法を学習します。「チュートリアルタスク1.3 - カスタムの場所オブジェクトを追加する」に進みます。