タスク1.2 - カスタムロジックを作成する

タスクの概要

このチュートリアルタスクでは、救急治療室モデルの患者トラックをさらに構築して、ベースのオブジェクトやアクティビティを使用する追加練習を行います。

最初のチュートリアルタスクでは、アクティビティセットを使用してすばやく患者トラックのロジックを設定する方法を学習しました。このチュートリアルタスクでは、ユーザー独自のアクティビティブロックを構築してカスタムロジックを作成する方法を学習します。アクティビティのカスタムブロックを構築すると、人ベースモデルのロジックの作用がよりよく理解できます。

スタッフオブジェクトや場所オブジェクトをシミュレーションモデルに追加する方法についても追加練習を通じて学習できるほか、スタッフや患者がオブジェクトやフロアプランの壁部分を横切って歩かなくて済むようにA*ナビゲーションシステムを使用する方法を学習します。

作業が完了すると、シミュレーションモデルは次の画像のようになります。

ステップ1 アクティビティのカスタムセットを追加する

これまでにアクティビティセットの1つを使用して患者トラックのロジックを作成する方法を学習しました。このステップでは、カスタムロジックをゼロから作成し、アクティビティを追加する方法を学習します。目標は[PatientTrack]処理フローでのトリアージフェーズの作成です。このフェーズでは、看護師が患者をトリアージエリアに連れて行くよう指示するロジックを設計します。

作業が終了すると、処理フローは次の画像のようになります。

現時点では、これらのアクティビティの追加と2つの処理フローへの接続のみを行います。後のステップで、プロパティを編集してロジックを追加します。

これらのアクティビティを追加して接続するには:

  1. PatientTrack]の人フローが開いていてアクティブであることを確認します。
  2. Flowchart]の下にあるライブラリで、[処理]形状をもう1つ追加します。この形状の名前を「Triage」に変更します。
  3. トリアージ]形状で、[場所を取得]アクティビティ([人的リソース]の下に)追加します。
  4. 次のアクティビティを追加して別個のスタックブロックを作成します。
    • スタッフを取得]アクティビティ([人的リソース]の下)
    • 付添人]アクティビティ([人のサブフロー]の下)
    • 処理]アクティビティ([人のベーシック]の下)
    • 場所をリリース]アクティビティ([人的リソース]の下)
  5. 新しいアクティビティの名前を次のように変更します。
  6. アクティビティ 新しい名前
    場所を取得 トリアージを取得
    スタッフを取得 トリアージ担当看護師を取得
    付添人 トリアージまで患者に付き添う
    処理 患者にトリアージを施す
    場所をリリース トリアージをリリース
  7. これらのアクティビティの右側に次のアクティビティを追加し、スタックブロックを作成します。
    • 場所を取得]アクティビティ([人的リソース]の下)
    • 歩く]アクティビティ([人のサブフロー]の下)
    • 場所を取得]アクティビティ([人的リソース]の下)
    • 場所をリリース]アクティビティ([人的リソース]の下)
  8. 新しいアクティビティの名前を次のように変更します。
  9. アクティビティ 新しい名前
    場所を取得(1つ目) 待機エリアを取得
    歩く 待機エリアまで歩く
    場所を取得(2つ目) トリアージを取得
    場所をリリース 待機エリアをリリース
  10. 次の共有アセットをこの形状に追加します。
    • 2つの[場所リソース]共有アセット([人的リソース]の下)
    • 1つの[スタッフリソース]共有アセット([スタッフリソース]の下)
  11. 共有アセットの名前を次のように変更します。
  12. アクティビティ 新しい名前
    場所リソース(1つ目) 待機エリア
    場所リソース(2つ目) トリアージ
    スタッフリソース トリアージ担当看護師
  13. 次のアクティビティからコネクターを作成します。
    • 登録をリリース]アクティビティから[トリアージを取得]アクティビティへ
    • トリアージを取得]アクティビティから[トリアージ担当看護師を取得]アクティビティへ
    • トリアージを取得]アクティビティから[待機エリアを取得]アクティビティへ
    • 待機エリアをリリース]アクティビティから[トリアージ担当看護師を取得]アクティビティへ
  14. 最初の[トリアージを取得]アクティビティをクリックして選択します。Connector1が[トリアージ担当看護師を取得]アクティビティに続くこと、Connector2が[待機エリアを取得]アクティビティに続くことを確認します。違っていた場合は、コネクターを削除して適切な順番で再接続するか、接続の順位付けをやり直します。詳細については、「発信コネクターのランク番号または名前を変更する」を参照してください。

処理フローがこのステップの冒頭に表示した画像のようになることを確認してください。

ステップ2 カスタムアクティビティロジックを編集する

前のステップでアクティビティの独自のカスタムセットを構築したため、プロパティの一部については、アクティビティセットを使用したときの状態が自動で設定されなくなっています。アクティビティセットは、人ベースモデルのロジックを構築する時間を短縮するにはよい方法です。とはいえ必要に応じて独自のカスタムロジックを作成できるように、自力でアクティビティロジックを設定する方法を理解しておくことをおすすめします。このステップでは、このようなロジックを設定する方法がわかります。

このステップでは、患者トラックのトリアージフェーズのロジックを作成します。トリアージエリアが対応可能な場合は、看護師がトリアージエリアまで患者に付き添い、患者のバイタルを測定します。トリアージエリアが対応できない場合、患者は待機エリアで待つことになります。

処理フローのトリアージフェーズで書くアクティビティがどのように機能するかについて概要を以下に示します。

アクティビティまたは共有アセット 説明
待機エリア この共有アセットはこれまでのステップで作成した[WaitAreas]グループにリンクします。
トリアージ この共有アセットは3Dモデルに含まれる[TriageChair1]の場所にリンクします。
トリアージ担当看護師 この共有アセットはこれまでのステップで作成した[RN]グループにリンクします。
トリアージを取得 このアクティビティでは、[TriageChair1]の場所の確保を試みます。他の患者が[TriageChair1]の場所を使用している場合は、トークンが[待機エリアを取得]アクティビティに移動し、患者は待合室で椅子を見つけます。[TriageChair1]の場所を取得すると、このトークンは代わりに[トリアージ担当看護師を取得]アクティビティに移動します。
待機エリアを取得 このアクティビティでは、WaitingArea1マルチロケーションの椅子の取得を試みます。場所が空いているとき、この患者トークンは[待機エリアまで歩く]アクティビティに移動します。
待機エリアまで歩く WaitingArea1マルチロケーションの椅子を確保したら、このアクティビティから患者に対し、このアクティビティが取得した特定の椅子まで歩いて移動するよう指示が送られます。
トリアージを取得 このアクティビティは、以前の[トリアージを取得]アクティビティとほぼ同一です。患者のために[TriageChair1]の場所の確保を試みます。場所が空いていない場合、トークンはどこかが利用可能になるまで、このアクティビティで待機します。場所が空くと、このトークンは[待機エリアをリリース]アクティビティに移動します。
待機エリアをリリース このアクティビティで[WaitingArea1]の場所にある特定の椅子がリリースされ、他の患者が取得できるようになります。
トリアージ担当看護師を取得 このアクティビティでは[RN]グループのメンバーを取得します。[RN]グループのメンバー全員が他のタスクに対応している場合は、誰か看護師が対応可能になるまで、このトークンがこのアクティビティで待機します。
トリアージまで患者に付き添う その後、トリアージ担当看護師がトリアージエリアまで患者に付き添います。誰とどこに移動すべきかを患者に伝えるには、取得したトリアージ用の椅子とトリアージ担当看護師にユーザーがこのアクティビティをリンクする必要があります。
患者にトリアージを施す このアクティビティは、患者がトリアージ処理の完了にかかる時間を表します。現時点ではその時間を20秒に設定します。
トリアージをリリース このアクティビティで[TriageChair1]の場所はリリースされ、他の患者が取得できるようになります。

アクティビティのプロパティを編集するには:

  1. PatientTrack処理フローで、[待機エリア]共有アセットをクリックして選択します。[場所]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタンをクリックして、サンプリングモードに入ります。
  2. 3Dモデルで[WaitingChairs1]オブジェクトをクリックして、メニューを開きます。メニューで[WaitAreas]グループを選択し、サンプリングします。
  3. トリアージ]共有アセットをクリックして選択します。[場所]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  4. 3Dモデルで[TriageChair1]をクリックしてサンプリングします。
  5. トリアージ担当看護師]共有アセットをクリックして選択します。[クイックプロパティ]で[スタッフ]ボックスの横にある矢印をクリックして、メニューを開きます。[スタッフグループ]をポイントしてから[RN]を選択します。
  6. 最初の[トリアージを取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  7. トリアージ]共有アセットをクリックしてサンプリングします。現在このアクティビティが共有アセットにリンクされていることを示す青い線が表示されます。
  8. 最初の[トリアージを取得]アクティビティが依然として選択されていることを確認します。[クイックプロパティ]で、[最大待機タイマー]チェックボックスをオンにします。
  9. OnWaitTimerFired]ボックスの横にある[プロパティを編集]ボタン をクリックして、ピックリストウィンドウを開きます。[目的地]ボックスで、現在の数とタイプ2を削除します。
  10. 待機エリアを取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  11. 待機エリア]共有アセットをクリックしてサンプリングします。現在このアクティビティが共有アセットにリンクされていることを示す青い線が表示されます。
  12. 待機エリアまで歩く]アクティビティをクリックして選択します。[目的地]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  13. 待機エリア]共有アセットをクリックしてサンプリングします。
  14. 2つ目の[トリアージを取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  15. トリアージ]共有アセットをクリックしてサンプリングします。現在このアクティビティが共有アセットにリンクされていることを示す青い線が表示されます。
  16. 待機エリアをリリース]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  17. トリアージ担当看護師を取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  18. トリアージ担当看護師]共有アセットをクリックしてサンプリングします。現在このアクティビティが共有アセットにリンクされていることを示す青い線が表示されます。
  19. トリアージまで患者に付き添う]アクティビティをクリックして選択します。[目的地]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  20. トリアージ]共有アクティビティをクリックして選択します。
  21. スタッフ]ボックスの横にある[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  22. トリアージ担当看護師]共有アクティビティをクリックして選択します。
  23. 患者にトリアージを施す]アクティビティをクリックして選択します。[処理時間]ボックスで、現在のテキストを削除し、「20.00」と入力します。
  24. 2つ目の[トリアージをリリース]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]アイコン をクリックして、サンプリングモードに入ります。
  25. トリアージ]共有アセットをクリックしてサンプリングします。現在このアクティビティが共有アセットにリンクされていることを示す青い線が表示されます。

この時点でシミュレーションモデルを保存することをおすすめします。

ステップ3 モデルをテストする

前のチュートリアルタスクで言及したとおり、モデルを定期的にテストするのはよいやり方です。一般的に、すべてが想定どおりに機能することをテストするために、モデルのごく一部を構築してシミュレーションモデルを実行することをおすすめします。

患者フェーズは2つとも、特定のリソースが使用できない場合に、順番待ち列に並ぶか待機エリアに移動するように患者を促します。ロジックのこれらの部分が正常に機能しているかどうかをテストするためには、モデルに同時に複数の患者を追加する必要があります。このステップでは、[患者の到着]処理フローで一度に1人ではなく2人の患者を案内するようこの処理フローを調整します。

  1. PatientArrivals]処理フローが開いていてアクティブであることを確認してください。
  2. ソース:シミュレーションを開始]アクティビティをクリックして選択します。[クイックプロパティ]で[到着を編集]ボタンをクリックして新しいウィンドウを開きます。
  3. 数量]列の下の1行目で、現在の数を削除し、「2」に変更します。

今度は次のとおりシミュレーションモデルをリセットして実行します。

モデルが実行されるのを確認すると、1人目と2人目の患者はそれぞれ病院に入り、順番待ち列まで歩きます。1人目の患者が登録している間、2人目の患者は順番待ち列で待ちます。看護師がトリアージエリアまで1人目の患者に付き添っている間に、2人目の患者が待合室に入ります。

看護師と患者に2点間の最短距離を通らせようとすると、歩いているうちにフロアプランの壁を横切ってしまうことに注意してください。この問題は後の方のステップで修正します。

ステップ4 場所とスタッフを追加する

このステップでは、人ベースの場所とスタッフオブジェクトをさらにモデルに追加することで、救急治療室の3Dオブジェクトをもう少し構築します。このステップでは、[オブジェクトを作成]モードを使用して、同じオブジェクトの複数のコピーを同時に追加する方法を説明します。

作業が終了すると、モデルは次の画像のようになります。

これらの追加3Dオブジェクトを追加するには:

  1. ]グループのライブラリで、[場所]オブジェクトをクリックして、メニューを開きます。[診察台]をクリック(ドラッグしないでください)して[オブジェクトを作成]モードに入ります。[オブジェクトを作成]モードでは、マウスポインターが[オブジェクトを作成]アイコン に変わります。最初の診察台を追加するモデルの領域をクリックします。(このステップの始めにある画像をオブジェクト配置の参考にしてください)。
  2. [オブジェクトを作成]モードの状態でモデル内をクリックして、2台目の[診察台]を追加します。
  3. 前のステップを繰り返して、モデルの診察台が合計6台になるまで、さらに[診察台]を追加します。Escを押すか、右クリックして[オブジェクトを作成]モードを終了します。
  4. Exam Table 3]をクリックして選択します。[クイックプロパティ]で、Z回転 180.00に変更します。[Exam Table 4]についてもこのステップを繰り返します。
  5. ]グループのライブラリで、[場所]オブジェクトをクリックして、メニューを開きます。[コンピュータデスク]をクリックして[オブジェクトを作成]モードに入ります。デスクを追加するモデルの領域をクリックします。
  6. [オブジェクトを作成]モードの状態でモデル内をクリックして、2つ目の[コンピュータデスク]を追加します。Escを押すか、右クリックして[オブジェクトを作成]モードを終了します。
  7. Computer Desk 2]をクリックして選択します。[クイックプロパティ]で、Z回転 -90.00に変更します。
  8. RN1]と[RN2]を3Dモデルの少し右側に移動します(このステップの最初にある画像をオブジェクト配置の参考にしてください)。
  9. ]グループのライブラリで[スタッフ]オブジェクトをクリックして、スタッフオブジェクトのメニューを開きます。[男性]をモデルにドラッグします。
  10. 前のステップを繰り返して[女性]をモデル内にドラッグします。
  11. Male1]をクリックして選択します。[クイックプロパティ]で名前を「MD1」に変更します。
  12. Female1]をクリックして選択します。[クイックプロパティ]で名前を「MD2」に変更します。
  13. MD2]の色を白に変更します。

シミュレーションモデルがこのステップの冒頭に表示した画像のようになっていることを確認します。

ステップ5 追加のオブジェクトグループを作成する

前のステップではシミュレーションモデルに新しい3Dオブジェクトをいくつか追加したため、モデルの拡張性を高めるため、これらの新しいオブジェクトのオブジェクトグループを作成する必要があります。このステップでは、新しい診察台に相当する[ExamRooms]という場所グループ、医師スタッフメンバーに相当する[MD]というスタッフグループを作成します。

追加のオブジェクトグループを作成するには:

  1. Shiftキーを長押ししたままマウスを使用して、前のステップでモデルに追加した新しい[診察台]オブジェクトを6つとも囲むようにしてボックスを描画します。赤いボックスが[ExamTables]の周りに表示され、これらの診察台が選択されていることがわかります。
  2. ExamTable1]を右クリックしてメニューを開きます。[場所グループ]をポイントしてから[新しいグループに追加]を選択して、グループのプロパティウィンドウを開きます。
  3. 名前のボックスで現在のテキストを削除し、このグループの名前を[ExamRooms]に変更します。
  4. ExamTables]が6つともこのグループのメンバーであることを確認します。グループのウィンドウを閉じます。
  5. Shiftキーを長押ししたままマウスで3Dモデルの空白部分をクリックし、[ExamTables]の選択を解除します。
  6. MD1]を右クリックしてメニューを開きます。[スタッフグループ]をポイントしてから[新しいグループに追加]を選択してグループプロパティウィンドウを開きます。
  7. 名前のボックスで現在のテキストを削除し、このグループの名前を「MD」に変更します。
  8. サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  9. 3Dモデルで[MD2]をクリックしてサンプリングします。
  10. グループプロパティウィンドウをすべて閉じます。

この時点でシミュレーションモデルを保存することをおすすめします。

ステップ6 A*ナビゲーションを追加する

このステップでは、モデルにA*ナビゲーションを追加します。A*は、人があるオブジェクトから別のオブジェクトに歩くときに使用する、最も論理的なパスを計算するツールです。障壁を置くことで、人が本来歩かないような場所を歩くことを防ぎます(オブジェクトや部屋の壁を通過して歩くなど)。A *ナビゲータは、これらの障壁を考慮して移動に最適な経路を計算します。

このステップでは、モデルのオブジェクトのほとんどをA *ナビゲータに接続し、救急治療室の壁を表す障壁を作成します。これにより、スタッフや患者が壁やオブジェクトを通過して歩くといった、モデルの精度を低下させる現象を防ぎます。

モデルのA *ビジュアル設定がオンになっていると、次の画像のようになります。

これらの変更を行うには:

  1. 3Dモデルが開いていてアクティブであることを確認してください。ライブラリで、[A*ナビゲーション]グループを展開します。[A*ナビゲータ]をモデルにドラッグしてフロアプランの外側に配置します。
  2. Aキーを長押しして接続モードに入ります。接続モードになると、マウスポインターはチェーン記号が横に付いたプラス記号に変わります()。
  3. 接続モードになったら、[A*ナビゲータ]をクリックします。[WaitingArea1]をクリックして両オブジェクト間の接続を作成します。
  4. 前のステップを繰り返して[A*ナビゲータ]からモデル内のすべての3Dオブジェクト(スタッフオブジェクトを含む)へのポート接続(A-接続)を作成します。ただし、次のオブジェクトは除外します。
    • Entrance1
    • Exit1
    • WaitingLine1
  5. ライブラリで、[分割器]オブジェクトをクリックして、[分割器を作成]モードに入ります。[分割器を作成]モードでは、マウスポインターが[分割器]アイコン に変わります。
  6. シミュレーションモデル内で、仕切りの始点を配置する位置を見つけます。モデル内のその位置をクリックし、マウスポインターを別の方向に動かすと、仕切りの作成を開始します。仕切りの端が、開始時を基準にして希望するおおよその長さ、角度、半径になるまで、マウスポインターの位置を調整します。マウスをもう一度クリックすると、仕切りの作成が終了します。Escを押して[分割器を作成]モードを終了します。
  7. これらの仕切りはシミュレーションモデルの壁としても機能します。まず、フロアプランの外壁(建物全体を囲む壁)を作成します。仕切りを移動またはサイズ変更する必要がある場合は、終点をクリックして別の位置にドラッグします。
  8. 内壁に仕切りを追加する前に、[A*ナビゲータ]をダブルクリックして、プロパティウィンドウを開きます。[一般]タブで[ノード間隔]を0.5に減らします。
  9. ビジュアル]タブで[グリッドを表示]および[移動しきい値]チェックボックスをオンにします。
  10. OK]ボタンをクリックして変更を保存し、ウィンドウを閉じます。
  11. 何も選択されないように、3Dモデルの空白の領域をクリックします。[ビュー設定]の[クイックプロパティ]で、[グリッドを表示]チェックボックスをオフにします。
  12. シミュレーションコントロールバーにある[リセット]ボタンをクリックして、ビジュアル変更が反映されていることを確認します(仕切りを描画中に表示された仕切りが大きすぎる場合は、このステップを繰り返します)。
  13. 建物の内壁にさらに仕切りを追加します。仕切りをフロアプランの壁に正確に配置する必要はありません。可能であれば、黄色のA *グリッドの線と線の間に仕切りを配置することがより重要です。これらの仕切りはグリッド上のあるポイントから別のポイントへの移動を防ぐため、グリッドの上よりもグリッドの間に配置する方がより良く機能します。
  14. TriageChair1]をクリックして選択します。椅子を囲むいくつかの赤い点で表される椅子の移動しきい値を確認できるようになりました。椅子が配置される方法に応じて、これらの点を囲むようにして青い点も表示される可能性があります。
  15. 移動しきい値のいずれの点も赤い移動のしきい値を超えないようにします(青い点が仕切りの先まであります)。 たとえば、次の画像は椅子の赤い移動しきい値が仕切りを超えている状態を示しています。
  16. TriageChair1]を仕切りから少し離れた位置にドラッグし、赤い移動しきい値が仕切りを越えないようにします。赤い移動しきい値が仕切りの内側にある場合、問題はありません。
  17. すべての[診察台]で前のステップを繰り返し、赤い移動しきい値の点が各室の壁を超えないようにします。
  18. WaitingArea1]と周囲の仕切りがぴったりと合っていることを確認して、人がその背後を歩いたり、オブジェクト間の小さな隙間に入り込んだりしないようします。
  19. Registration1]オブジェクトの前に仕切りを配置する場合は、仕切りを回避しなくても患者が到達できるように、デスクの移動しきい値が仕切りを超えていることを確認することをおすすめします。
  20. A*ナビゲーションシステムのビジュアルガイドをオフにする場合は、[A*ナビゲータ]をダブルクリックして、プロパティウィンドウを開きます。[ビジュアル]タブで、すべてのチェックボックスをオフにします。

シミュレーションをリセットして実行します。

これでモデルを実行すると、患者と看護師はオブジェクトや壁を通り抜けなくなりました。看護師は患者と一緒にトリアージエリアに移動する途中でフロアプランでフロントデスクや壁の周辺を歩きます。

ステップ7 診察室まで付き添うフェーズを追加する

このステップでは、患者トラックにアクティビティセットをもう1つ追加します。このアクティビティセットは「付き添って処理(または待機エリアに移動)」と言います。このアクティビティを使用して、対応可能な看護師がいる場合は診察室まで患者に看護師が付き添うようにします。このアクティビティには若干のカスタマイズが必要なため、ユーザーはこのステップのアクティビティを追加したり削除したりすることになります。

作業が終了すると、処理フローは次の画像のようになります。

現時点では、これらのアクティビティの追加と処理フローへの接続のみを行います。後のステップで、プロパティを編集してロジックを追加します。

これらのアクティビティを追加して接続するには:

  1. PatientTrack]処理フローが開いていてアクティブであることを確認してください。
  2. 人のアクティビティセット]の下にあるライブラリから[付き添って処理(または待機エリアに移動)]アクティビティセットを処理フローに追加します。
  3. この形状の名前を[診察室まで付き添う]に変更します。
  4. この形状の右側にあるアクティビティブロック内でCtrlキーを長押しします。[待機エリアまで歩く]アクティビティをクリックし、スタックブロックから処理フローの他のスペースに移動します。
  5. 待機エリアまで歩く]アクティビティを削除します。
  6. 同じ処理を繰り返して、この形状の左側にあるアクティビティブロックから次のアクティビティを削除します。
    • 処理
    • 場所をリリース
  7. 人のサブフロー]グループの下にあるライブラリから[付添人]アクティビティを追加し、右側にあるアクティビティブロック内の[待機エリアを取得]アクティビティの後ろに挿入します。
  8. 右側にあるアクティビティブロック内の[付添人]アクティビティの後ろに挿入する形で[人的リソース]グループの下にあるライブラリから[スタッフをリリース]アクティビティを追加します。
  9. Ctrlキーを長押しします。左側のスタックブロック内にある[スタッフを取得]アクティビティをクリックし、右側のスタックブロックの末尾に移動します。
  10. 左側のスタックブロックをクリックして選択します(中に[患者に付き添う]アクティビティと[スタッフをリリース]アクティビティの2つのアクティビティが含まれています)。 Ctrl+Cで目的のスタックブロックをコピーします。Ctrl + Vでこのスタックブロックを貼り付けます。
  11. 新しくコピーしたスタックブロックを右側のスタックブロックの末尾に追加します。
  12. アクティビティと共有アセットの名前を次のように変更します。
  13. アクティビティまたは共有アセット 新しい名前
    待機エリア 待機エリアに戻る
    場所 診察室
    スタッフ 診察担当看護師
    場所を取得(左側) 診察室を取得
    患者に付き添う(左側) 診察室まで患者に付き添う
    スタッフをリリース(左側) トリアージ担当看護師をリリース
    患者に付き添う(右側の1人目) 待機エリアまで患者に付き添う
    スタッフをリリース(右側) トリアージ担当看護師をリリース
    場所を取得(右側) 診察室を取得
    スタッフを取得 診察担当看護師を取得
    患者に付き添う(右側の2人目) 診察室まで患者に付き添う
    スタッフをリリース 診察担当看護師をリリース
  14. トリアージ]形状の[トリアージをリリース]アクティビティから[診察室を取得]アクティビティに続くコネクターを作成します。
  15. 最初の[診察室を取得]アクティビティをクリックして選択します。Connector1が[診察室まで患者に付き添う]アクティビティに続くこと、Connector2が[待機エリアを取得]アクティビティに続くことを確認します。違っていた場合は、コネクターを削除して適切な順番で再接続します。
  16. 右側のスタックブロックの末尾から左側のスタックブロックに続くコネクターを削除します。

処理フローがこのステップの冒頭に表示した画像のようになることを確認してください。

ステップ8 [診察に付き添う]アクティビティを編集する

このステップでは、前のステップで追加した新しいアクティビティのプロパティを編集します。これはアクティビティセットであるため、ほとんどのアクティビティはすでに正しく機能するように設定済みです。とはいえ前のステップで追加した新しいアクティビティなどに対し、若干の変更が必要です。

共有アセットとアクティビティが機能する方法の概要を次に示します。

アクティビティまたは共有アセット 説明
待機エリアに戻る この共有アセットは[WaitAreas]場所グループにリンクします。
診察室 この共有アセットは[ExamRooms]場所グループにリンクします。
診察担当看護師 この共有アセットは[RN]スタッフグループにリンクします。
診察室を取得(左側) このアクティビティでは、[診察室]の1つの取得を試みます。患者が[診察室]の場所すべてを現在、使用している場合は、トークンが[待機エリアを取得]アクティビティに移動し、患者は待合室で椅子を見つけます。[診察室]の場所の1つを取得すると、トークンは代わりに[診察室まで患者に付き添う]アクティビティに移動します。
待機エリアを取得 このアクティビティでは、WaitingArea1マルチロケーションの椅子の取得を試みます。場所が空いているとき、この患者トークンは[待機エリアまで患者に付き添う]アクティビティに移動します。
待機エリアまで患者に付き添う WaitingArea1マルチロケーションの椅子を確保したら、以前取得したトリアージ担当看護師に対しこのアクティビティから、待機エリアまで戻る患者に付き添うよう指示が送られます。
トリアージ担当看護師をリリース(右側) このアクティビティでは、処理フローの早い段階で取得したトリアージ担当看護師をリリースします。その後、この看護師が他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。
診察室を取得(右側) このアクティビティは、左側の[診察室を取得]アクティビティとほぼ同一ですが、最大待機時間の待機タイマーは使用しません。
待機エリアをリリース このアクティビティで[WaitingArea1]の場所にある特定の椅子がリリースされ、他の患者が取得できるようになります。
診察担当看護師を取得 このアクティビティでは[RN]グループのメンバーを取得します。[RN]グループのメンバー全員が他のタスクに対応している場合は、誰か看護師が対応可能になるまで、このトークンがこのアクティビティで待機します。
診察室まで患者に付き添う(右側) 次は診察担当看護師が診察室まで患者に付き添います。
診察担当看護師をリリース このアクティビティでは、処理フローの早い段階で取得した診察担当看護師をリリースします。その後、この看護師が他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。
診察室まで患者に付き添う(左側) このアクティビティは右側の[診察室まで患者に付き添う]とほぼ同一です。ただしトリアージ担当看護師は、代わりに患者に付き添います。
トリアージ担当看護師をリリース(左側) このアクティビティは、[トリアージ担当看護師をリリース(右側)]と同一です。

このロジックを構築するには:

  1. 診察室まで付き添う]形状で、[待機エリアに戻る]共有アセットをクリックして選択します。[クイックプロパティ]で[場所]ボックスの横にある矢印をクリックして、メニューを開きます。[場所グループ]をポイントしてから[WaitAreas]を選択します。
  2. 診察室]共有アセットをクリックして選択します。[クイックプロパティ]で[場所]ボックスの横にある矢印をクリックして、メニューを開きます。[場所グループ]をポイントしてから[ExamRooms]を選択します。
  3. 診察担当看護師]共有アセットをクリックして選択します。[クイックプロパティ]で[スタッフ]ボックスの横にある矢印をクリックして、メニューを開きます。[スタッフグループ]をポイントしてから[診察担当看護師]を選択します。
  4. 待機エリアまで患者に付き添う]アクティビティをクリックして選択します。[目的地]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  5. 待機エリアに戻る]共有アセットをクリックしてサンプリングします。
  6. スタッフ]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  7. トリアージ]形状内の[トリアージ担当看護師]共有アセットをクリックしてサンプリングします。
  8. 右側のアクティビティブロック内の[トリアージ担当看護師をリリース]アクティビティをクリックして選択します。[スタッフリソース]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  9. トリアージ]形状内の[トリアージ担当看護師]共有アセットをクリックしてサンプリングします。
  10. 左側のアクティビティブロック内の[トリアージ担当看護師をリリース]アクティビティで前のステップを繰り返します。
  11. 左側のアクティビティブロック内の[診察室まで患者に付き添う]をクリックして選択します。[スタッフリソース]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  12. トリアージ]形状内の[トリアージ担当看護師]共有アセットをクリックしてサンプリングします。

モデルをリセットして実行します。

トリアージ処理を終了して待合室に戻ると、看護師は患者を診察室に連れて行きます。

結論

これまでに救急医療室のシミュレーションモデルを作成しました。またそのモデルでは患者が登録を済ませ、処理にチェックインしました。次のチュートリアルタスクでは、カスタムの場所オブジェクトを作成する方法を学習します。「チュートリアルタスク1.3 - カスタムの場所オブジェクトを追加する」に進みます。