タスク1.3 - カスタムの場所オブジェクトを追加する

タスクの概要

このチュートリアルタスクでは、2人のスタッフメンバーが互いに相談できるミーティング場所を作成して、カスタムの場所オブジェクトを追加する方法について学習します。また[患者の診断]フェーズと[スタッフの相談]フェーズを[PatientTrack]処理フローに追加します。それで新しく使用できるカスタムオブジェクトができます。このフェーズでは、患者を診察したMDが患者の治療についてRNと話し合います。

チュートリアルタスクの最後には、患者トラックの最後に治療フェーズ、患者への説明フェーズ、院外へ出るフェーズといった追加フェーズを追加します。

作業が完了すると、モデルは次の画像のように機能します。

ステップ1 カスタムの場所オブジェクトを作成する

このステップでは、カスタム場所オブジェクトの形で2人のスタッフが互いに相談できるミーティング場所を作成します。視覚的には、床の上にある円のように見えます。

カスタムの場所オブジェクトで作業するときは、オブジェクトの進入や退出の指示を割り当てる必要があります。これらの命令は、オブジェクトに異なるタイプの人ベースのオブジェクトとやり取りした場合に適用されるアニメーションを指示します。必要に応じて、異なるタイプの人ベースのオブジェクトに異なる指示を割り当てることができます。

ミーティング場所オブジェクトの場合は、オブジェクトに進入する最初のスタッフメンバー用と2人目のスタッフメンバー用に2つの指示セットを作成します。それぞれのスタッフに立つ場所を伝える進入指示を作成し、対話するアニメーションを作成します。このアニメーションは、スタッフがオブジェクトを離れるまで継続して繰り返します。ミーティング場所オブジェクトは退出指示を必要としないので、デフォルトの指示を削除します。

このカスタムの場所オブジェクトを作成するには:

  1. 3Dモデルが現在アクティブなウィンドウであることを確認してください。左のペインで[ライブラリ]タブをクリックして、[ライブラリ]を開きます。
  2. ]グループのライブラリで[場所]オブジェクトをクリックして、場所オブジェクトのメニューを開きます。[椅子]オブジェクトをモデルにドラッグします。
  3. Chair1]をダブルクリックして、プロパティウィンドウを開きます。
  4. オブジェクトの名前を「MeetingPlace」に変更します。
  5. 一般]タブの[3D形状]ボックスを見つけます。その直下にある名前のないボックスで、[サンプラー]ボタン をクリックしてサンプリングモードに入ります。
  6. ライブラリ内の[形状]オブジェクト([ビジュアル]グループの下)をクリックして、円柱形状をサンプリングします。
  7. サイズ プロパティを次のように変更します。
    • Xサイズ:2.00
    • Yサイズ:2.00
    • Zサイズ:0.01
  8. 進入指示]タブで[テンプレート]メニューをクリックし、[カスタム]を選択します。
  9. 左側の[ロール]リストで各ロールを選択し、[削除]ボタン を使用してリストからすべてのロールを削除します。
  10. 追加]ボタン をクリックして、新しいロールをリストに追加します。
  11. 名前]ボックスで、テキストを削除してPersonと入力します。
  12. 条件]ボックスに1と入力します。
  13. 適用]ボタンをクリックして、これらの変更を保存します。
  14. 左側の[ロール]リストに戻り、[追加]ボタン の横にある矢印をクリックして、メニューを開きます。[サブロールを追加]を選択します。
  15. 名前]ボックスで、テキストを削除してFirstと入力します。
  16. 条件]ボックスにroleRank == 1と入力します。
  17. 適用]ボタンをクリックして、これらの変更を保存します。
  18. 指示]ボックスの横にある[追加]ボタン をクリックして、メニューを開きます。[場所まで歩く]を選択してこの指示を追加します。
  19. 前のステップを繰り返して、[回転を設定]指示と[アニメーションを再生]指示も追加します。
  20. アニメーションを再生]指示ボックスの横にある矢印をクリックして、メニューを開きます。[人のアニメーション]をポイントし、[起立]を選択します。
  21. すべての手順の上部にある[プランナーパーソン]チェックボックスをオンにします。3Dモデルの[MeetingPlace]形状に人が表示されます。
  22. プランナーパーソン]が[MeetingPlace]形状の片側にくるように配置し直します。
  23. 位置まで歩く]指示の横にある[プランナーの位置を適用]ボタンをクリックして、オフセットを変更します。
  24. ロール]リストで、最初のロールがまだ選択されていることを確認します。次に[複製]ボタン をクリックしてこのロールのコピーを作成します。
  25. 名前]ボックスで、テキストを削除してSecondと入力します。
  26. 条件]ボックスにroleRank == 2と入力します。
  27. 適用]ボタンをクリックして、これらの変更を保存します。
  28. アニメーションを再生]指示ボックスの横にある矢印をクリックして、メニューを開きます。[人のアニメーション]をポイントし、[肩すくめ]を選択します。
  29. プランナーパーソン]が[MeetingPlace]形状の反対側にくるように配置し直します。
  30. 位置まで歩く]指示の横にある[プランナーの位置を適用]ボタンをクリックして、オフセットを変更します。
  31. 回転を設定]指示で、[Z]を-180.00に変更します。
  32. プランナーパーソン]チェックボックスをオフにします。
  33. 適用]ボタンをクリックして、これらの変更を保存します。
  34. 退出指示]タブで[テンプレート]メニューをクリックし、[カスタム]を選択します。
  35. 左側の[ロール]リストで目的のロールを選択し、[削除]ボタン を使用してリストから削除します。
  36. OK]ボタンを押して変更を保存し、プロパティウィンドウを閉じます。

次の2つのステップで、カスタムオブジェクトを含む処理フローアクティビティを構築し、カスタムオブジェクトをテストします。

ステップ2 [診察]フェーズと[スタッフの相談]フェーズを追加する

このステップでは、患者トラックに2つのフェーズを追加します。最初のフェーズは、医師が患者を診察する診察フェーズです。次のフェーズはユーザーが前のステップで作成した新しいカスタム場所オブジェクトを使用するフェーズです。このフェーズでは、患者の診察を行ったMDが、患者の治療についてRNと相談します。

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

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

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

  1. PatientTrack]処理フローが開いていてアクティブであることを確認してください。[人のアクティビティセット]グループの下にあるライブラリで、処理フローに次のアクティビティセットを追加します。
    • スタッフの付く処理]アクティビティセット
    • スタッフ2人のミーティング]アクティビティセット
  2. 次のように2つの新しい形状の名前を変更します。
  3. アクティビティまたは共有アセット 新しい名前
    スタッフの付く処理 医師の診察
    スタッフ2人のミーティング スタッフの相談
  4. Ctrlキーを長押しします。[医師の診察]形状で、[スタッフをリリース]アクティビティをクリックし、スタックブロックから処理フローの他のスペースに移動します。
  5. スタッフをリリース]アクティビティを削除します。
  6. 前のステップを繰り返して[スタッフの相談]形状から次の共有アセットとアクティビティを削除します。
    • 医師を取得]アクティビティ
    • 看護師]共有アセット
    • 医師]共有アセット
  7. ベーシック]グループの下にあるライブラリから、[決定]アクティビティを[スタッフの相談]フェーズに含まれる前回のアクティビティブロックの末尾に追加します。
  8. 以下のように[医師の診察]形状でアクティビティと共有アセットの名前を変更します。
  9. アクティビティまたは共有アセット 新しい名前
    スタッフ 診察医
    スタッフを取得 診察医を取得
    歩く 患者のところまで歩く
    処理 患者を診察
  10. 以下のように[スタッフの相談]形状内のアクティビティの名前を変更します。
  11. アクティビティ 新しい名前
    看護師を取得 診察担当看護師を取得
    医師がオフィスへ 診察医がミーティング場所へ
    看護師がオフィスへ 診察担当看護師がミーティング場所へ
    処理 治療について話し合う
    看護師をリリース 診察担当看護師をリリース
    医師をリリース 診察医をリリース
    決定 治療を決める
  12. 以下のアクティビティからコネクターを作成します。
    • トリアージ担当看護師をリリース]アクティビティ([診察室まで付き添う]形状内)から[診察医を取得]アクティビティ([医師の診察]形状内)へ
    • 診察担当看護師をリリース]アクティビティ([診察室まで付き添う]形状内)から[診察医を取得]アクティビティ([医師の診察]形状内)へ
    • 患者を診察]アクティビティから[診察担当看護師を取得]アクティビティ([スタッフの相談]形状内)へ

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

ステップ3 診察と相談のアクティビティを編集する

このステップでは、前のステップで追加した新しいアクティビティのプロパティを編集します。アクティビティセットを使用しているため、ほとんどのアクティビティはすでに正しく機能するように設定済みです。ただし、アクティビティセットからいくつかの共有アセットを削除したことにより、いくつか変更を加える必要があります。

[医師の診察]フェーズのアクティビティと共有アセットが機能する方法の概要を次に示します。

アクティビティまたは共有アセット 説明
診察医 この共有アセットは3Dモデルの[MD]グループにリンクします。
診察医を取得 このアクティビティでは[MD]グループのメンバーを取得します。[MD]グループのすべてのメンバーが他のタスクの処理に忙しい場合、トークンは医師が対応可能になるまでこのアクティビティで待機します。
患者のところまで歩く 医師を取得すると、このアクティビティは医師に現在の患者の場所まで歩くように伝えます。
患者を診察 このアクティビティは、医師が患者を診察するためにかかる時間を表します。現時点ではその時間を20秒に設定します。

[スタッフの相談]フェーズのアクティビティが機能する方法の概要を次に示します。

アクティビティ 説明
診察担当看護師を取得 このアクティビティでは[RN]グループのメンバーを取得します。[RN]グループのメンバー全員が他のタスクに対応している場合は、誰か看護師が対応可能になるまで、このトークンがこのアクティビティで待機します。
分割 このアクティビティでは、現在の患者のトークンを2つのトークンに分割して、協調的な移動タスクを医師と看護師に割り当てます。医師と看護師は次の2つの移動タスクを同時に実行します。
診察医がミーティング場所へ このアクティビティでは、取得した診察医に3Dモデルの[MeetingPlace]オブジェクトまで歩いて移動するように指示します。
診察担当看護師がミーティング場所へ このアクティビティでは、取得した診察担当看護師に、3Dモデル内の[MeetingPlace]オブジェクトまで歩いていくように指示します。
結合 調整された移動タスクが完了すると、2つのトークンを再び1つのトークンに結合できます。
治療について話し合う このアクティビティは、医師が患者の治療について看護師と話し合うのにかかる時間を表します。現時点ではその時間を10秒に設定します。
診察担当看護師をリリース このアクティビティでは、処理フローの早い段階で取得した診察担当看護師をリリースします。その後、この看護師が他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。
診察医をリリース このアクティビティでは、処理フローの早い段階で取得した診察医をリリースします。その後、この医師は他のタスクに従事したり、この医師を他の患者が取得したりできるようになります。
治療を決める 現時点では、このアクティビティは単なるプレースホルダーアクティビティです。将来的には、このアクティビティを使用して患者が受ける治療を決定します。現時点ではデフォルト設定を使用するため、このステップでは変更を加えません。

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

  1. 医師の診察]形状で、[診察医]共有アセットをクリックして選択します。[クイックプロパティ]で[スタッフ]ボックスの横にある矢印をクリックして、メニューを開きます。[スタッフグループ]をポイントしてから[MD]を選択します。
  2. 患者を診察]アクティビティをクリックして選択します。[処理時間]ボックスで、現在のテキストを削除し、「20.00」と入力します。
  3. スタッフの相談]形状で、[診察担当看護師を取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]ボタン をクリックして、サンプリングモードに入ります。
  4. 診察室まで付き添う]形状内の[診察担当看護師]共有アセットをクリックしてサンプリングします。アクティビティがリンクされていることを示す青い線が表示されます。
  5. 診察医がミーティング場所へ]アクティビティをクリックして選択します。[]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  6. 医師の診察]形状内の[診察医]をクリックしてサンプリングします。
  7. 目的地]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  8. 3Dモデルで、[MeetingPlace]オブジェクトをクリックしてメニューを開きます。[ミーティング場所]をクリックしてサンプリングします。
  9. 診察担当看護師がミーティング場所へ]アクティビティをクリックして選択します。[]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  10. 診察室まで付き添う]形状内の[診察担当看護師]をクリックしてサンプリングします。
  11. 目的地]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  12. 3Dモデルで、[MeetingPlace]オブジェクトをクリックしてメニューを開きます。[ミーティング場所]をクリックしてサンプリングします。
  13. 治療について話し合う]アクティビティをクリックして選択します。[処理時間]ボックスで、現在のテキストを削除し、「10.00」と入力します。
  14. 2つ目の[オブジェクト]ボックスで[サンプラー]ボタン をクリックし、サンプリングモードに入ります。
  15. 診察室まで付き添う]形状内の[診察担当看護師]をクリックしてサンプリングします。
  16. 3つ目の[オブジェクト]ボックスで[サンプラー]ボタン をクリックし、サンプリングモードに入ります。
  17. 医師の診察]形状内の[診察医]をクリックしてサンプリングします。
  18. 診察担当看護師をリリース]アクティビティをクリックして選択します。[スタッフリソース]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  19. 診察室まで付き添う]形状内の[診察担当看護師]をクリックしてサンプリングします。
  20. 診察医をリリース]アクティビティをクリックして選択します。[スタッフリソース]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  21. 医師の診察]形状内の[診察医]をクリックしてサンプリングします。

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

患者が診察室に到着したら、医師は患者を20秒間診察する必要があります。あとで看護師と医師がミーティング場所に行き、患者の治療について10秒間相談します。

ステップ4 フェーズとアクティビティを追加する

このステップでは[PatientTrack]処理フローに[治療]、[患者への説明]、[院外へ]という3つのフェーズを追加します。[スタッフの付く処理]アクティビティセットを再利用しつつ、[出口まで患者に付き添う]アクティビティセットを初めて使用します。

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

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

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

  1. PatientTrack]処理フローが開いていてアクティブであることを確認してください。[フローチャート]グループの下にあるライブラリから処理フローに[処理]形状を追加します。
  2. 人のアクティビティセット]グループの下にあるライブラリで、処理フローに次のアクティビティセットを追加します。
    • スタッフの付く処理]アクティビティセット
    • 出口まで患者に付き添う]アクティビティセット
  3. 2つの新しい形状の名前を次のように変更します。
  4. 形状 新しい名前
    処理 治療
    スタッフの付く処理 患者への説明
  5. 人のベーシック]グループの下にあるライブラリから[処理]アクティビティを[治療]形状に追加します。
  6. このアクティビティの名前を[患者を治療]に変更します。
  7. Ctrlキーを長押しします。[出口まで患者に付き添う]形状で、[処理]アクティビティをクリックし、スタックブロックから処理フロー内の他のスペースに移動します。
  8. 処理]アクティビティを削除します。
  9. 患者への説明]形状と[出口まで患者に付き添う]形状から2つの[スタッフ]共有アセットを削除します。
  10. 出口まで患者に付き添う]形状の[付添人]アクティビティの後ろに挿入する形で[人的リソース]グループの下にあるライブラリから[場所をリリース]アクティビティを追加します。
  11. 患者への説明]形状に含まれるアクティビティの名前を以下のように変更します。
  12. アクティビティまたは共有アセット 新しい名前
    スタッフを取得 診察医を取得
    歩く 患者のところまで歩く
    処理 患者に通知
    スタッフをリリース 診察医をリリース
  13. 出口まで患者に付き添う]形状のアクティビティの名前を次のように変更します。
  14. アクティビティまたは共有アセット 新しい名前
    スタッフを取得 診察担当看護師を取得
    付添人 出口まで患者に付き添う
    場所をリリース 診察室をリリース
    スタッフをリリース 診察担当看護師をリリース
  15. 以下のアクティビティからコネクターを作成します。
    • 治療を決める]アクティビティから[患者を治療]アクティビティへ
    • 患者を治療]アクティビティから[診察医を取得]アクティビティへ
    • 診察医をリリース]アクティビティから[診察担当看護師を取得]アクティビティへ

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

ステップ5 アクティビティのプロパティを編集する

このステップでは、前のステップで追加した3つの新しいフェーズのロジックを追加します。患者が治療を受けるためのロジックを作成し、その後、患者が退院する前に元の診察を行った医師と簡単なミーティングを行います。最後に、看護師が出口まで患者に付き添い、患者はシミュレーションからいなくなります。

このアクティビティが機能する方法の概要を次に示します。

アクティビティ 説明
患者を治療 このアクティビティは、患者が治療を受けるのにかかる時間の代用として機能します。これは今のところ実体のないアクティビティのプレースホルダーです。後のチュートリアルタスクでは、このアクティビティを最終的により複雑なアクティビティに置き換えて取り組みます。今回は遅延時間を5秒に設定します。
診察医を取得 このアクティビティでは、患者が以前のステップで取得した同じ医師を取得します。その特定の医師が忙しい場合、トークンはその特定の医師が対応可能になるまで待機してから、次の下流アクティビティに移動します。
患者のところまで歩く 医師を取得すると、このアクティビティは医師に現在の患者の場所まで歩くように伝えます。
患者に通知 このアクティビティは、医師が患者を診察するためにかかる時間を表します。現時点ではその時間を15秒に設定します。
診察医をリリース このアクティビティでは、処理フローの早い段階で取得した診察医をリリースします。そしてこの医師は他のタスクに従事したり、この医師を他の患者が取得したりできるようになります。
診察担当看護師を取得 このアクティビティでは、患者が以前のステップで取得した同じ看護師を取得します。その特定の看護師が忙しい場合、トークンはその特定の看護師が対応可能になるまで待機してから、次の下流アクティビティに移動します。
出口まで患者に付き添う このアクティビティでは、以前に取得した診察担当看護師に、出口まで患者に付き添うよう指示します。
診察室をリリース このアクティビティでは、処理フローの早い段階で患者が取得した特定の診察室がリリースされ、他の患者が取得できるようになります。
診察担当看護師をリリース このアクティビティでは、処理フローの早い段階で取得した診察担当看護師をリリースします。そしてこの看護師は他のタスクに従事したり、この看護師を他の患者が取得したりできるようになります。
患者を削除 このアクティビティは、患者をシミュレーションモデルから削除します。

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

  1. 患者を治療]アクティビティをクリックして選択します。[処理時間]ボックスの[クイックプロパティ]で、現在のテキストを削除し、「5.00」と入力します。
  2. 患者への説明]形状で、[診察医を取得]アクティビティをクリックして選択します。[スタッフリソース]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  3. 医師の診察]形状内の[診察医]共有アセットをクリックしてサンプリングします。
  4. 患者のところまで歩く]アクティビティをクリックして選択します。[]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  5. 医師の診察]形状内の[診察医]共有アセットをクリックしてサンプリングします。
  6. 患者に通知]アクティビティをクリックして選択します。[処理時間]ボックスの[クイックプロパティ]で、テキストを削除し、「15.00」と入力します。
  7. 詳細]ボタンをクリックしてアクティビティを展開します。
  8. 2番目の[オブジェクト]ボックスの横にある[削除]ボタン をクリックして、このボックスを削除します。
  9. 診察医をリリース]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]ボタン をクリックして、サンプリングモードに入ります。
  10. 医師の診察]形状内の[診察医]共有アセットをクリックしてサンプリングします。アクティビティがリンクされていることを示す青い線が表示されます。
  11. スタッフの相談]形状で、[診察担当看護師を取得]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]ボタン をクリックして、サンプリングモードに入ります。
  12. 診察室まで付き添う]形状内の[診察担当看護師]共有アセットをクリックしてサンプリングします。アクティビティがリンクされていることを示す青い線が表示されます。
  13. 出口まで患者に付き添う]アクティビティをクリックして選択します。[スタッフ]ボックスの横にある[クイックプロパティ]で[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
  14. 診察室まで付き添う]形状内の[診察担当看護師]共有アセットをクリックしてサンプリングします。
  15. 診察室をリリース]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]ボタン をクリックして、サンプリングモードに入ります。
  16. 診察室まで付き添う]形状で[診察室]共有アセットをクリックしてサンプリングします。アクティビティがリンクされていることを示す青い線が表示されます。
  17. 診察担当看護師をリリース]アクティビティをクリックして選択します。このアクティビティの横にある[リンクなし]ボタン をクリックして、サンプリングモードに入ります。
  18. 診察室まで付き添う]形状内の[診察担当看護師]共有アセットをクリックしてサンプリングします。アクティビティがリンクされていることを示す青い線が表示されます。

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

MDは患者と手短に面会し、患者は緊急治療室から退出します。

結論

この時点で、患者トラックの基本構造が完成しました。次のチュートリアルタスクでは、条件付き治療フェーズを患者のトラックに追加して、より複雑なシミュレーションモデルに加工します。また、モデル内で装置や輸送オブジェクトを使用する方法も学びます。「チュートリアルタスク1.4 - 輸送と装置のオブジェクトを追加する」に進みます。