# サービスロボット導入シミュレーション Log#44 | 搬送ロボットの問題は、病院の職員の仮の動きだった

- 記録: LOG491（サービスロボット導入シミュレーション）
- 公開: 2026/11/12
- 記事のページ: https://pixelstomotors.com/record/hospital-transport-robot-conflicts-came-from-placeholder-staff-moves
- サイト: Pixels to Motors（ADAPT DESIGN / 島津 栄一） https://pixelstomotors.com/
- 要約: 病院の搬送ロボットを Unity で動かすシミュレーションで、ロボットの問題の大半は職員の仮の動きが作っていた。職員141人を持ち場ごとの型で動かすと、走っている間の問題は1日68件から19件に減った。

> AI が読むための記事の全文です（コード・実行ログを含む）。引用するときは上の「記事のページ」の住所を使ってください。

---

病院で検体や薬を運ぶ搬送ロボットを Unity で動かすシミュレーションで、ロボットに起きる問題（急に止まった・ひやり・人がよけさせられたなど）の大半は、職員141人を「1人が1時間に1回、くじ引きで選んだ部屋へ行って戻る」という仮の決まりで動かしていたことが作っていた。**職員を持ち場ごとの型と用事で動かす形に替えると、ロボットが走っている間の問題は1日68件から19件に減り、そのうち職員141人が相手だったのは2件だけになった。**

この回で良くなったこと、できるようになったことです。

- ロボットの問題の数が、仮の動きではなく、理由のある人の動きから出るようになった。走っている間の問題は68件から19件、台の前で待っている間のひやりは47件から12件。残った相手は、ほかの階から来る職員・病棟の看護師・患者と、ロボットに積みに来る看護師だった
- 職員の動かし方に台帳ができた。141人を持ち場ごとの21行に分け、動き方を4つの型（持ち場の中だけ・決まった相手先と行き来・患者に付いて動く・フロアを回る）にした。細かく作り込むのは15人で、110人は「持ち場から出ない」と決めるだけで足りた
- 車いすの患者が救急室のまわりで約11分動けなくなる件が消えた（最長20秒）。化学療法の患者8人も、通り道を0.5m から1.5m に広げたトイレへ歩いて行けるようになった
- 作業は依頼箱から Claude Code が回した。依頼155 は186分、依頼157 は215分で、Unity を人が開いて手で直した所はない。依頼155 は Anthropic の Claude Fable 5.2 で回し、やり取りは75回・約700円だった（前後の回は Claude Opus 5.5 で122回・約1,200円と137回・約2,400円。作る物が違うので、同じ条件の比べではない）

困っていたのは、問題の数が直すたびに増えたり減ったりして、何が原因なのかが読めなかったことです。前の回（[LOG488](https://pixelstomotors.com/record/hospital-transport-robot-blocked-paths-more-conflicts)）では、通れなかった患者と職員を通したら問題が84件から132件に増えました。行き先を絞る直し（依頼155）で68件に下がったものの、新しく車いすの患者が動けなくなり、大廊下の人は目安を下回りました。そこで1日分の記録を役割ごとに数え直すと、医師が外来の時間に診察室を空けて内視鏡室や救急へ行き、臨床検査技師が X線室へ1日73回行っていました。

> 配膳ロボットの時と違って、人によって動きがかなり違うため。スタッフ、患者（患者も色々）、医師、事務員、付添人など各々の問題点をまずは洗い出してください。

| 何を | なぜ | どうなったか |
|---|---|---|
| Claude Fable 5.2 で何が良くなるかを調べ、依頼155 で1回試した | 新しいモデルが Unity の作業に効くかを、公表の数字ではなく自分の依頼で見るため | 186分・75回・約700円で合格。1回だけなので、良し悪しは言い切れない |
| 化学療法のトイレの通り道を広げ、職員の行き先を持ち場のある所だけにした（依頼155） | トイレへの通り道が0.35m で通れず、職員が付き添い用の所へふだんも行っていた | 8人ともトイレへ行けた。問題は132件から68件 |
| 依頼155 の1日分の記録を、役割ごとに数え直した | 直しても問題が残り、車いすの患者が救急室で動けなくなった | 職員は5つの役割とも同じ決まりで、科をまたいで動いていた |
| 職員を持ち場ごとの21行・4つの型に分け、用事の表を作った | 役割で分ける形そのものが合っていなかった | 作り込むのは15人。清掃と警備の人も足した |
| 職員の動きを替えて1日を撮り直した（依頼157） | 表のとおりに動かすと問題の数がどう変わるかを見るため | 68件から19件。受け取る人がロボットに会えないなど4つが残った |
| 動画を見て、呼ぶ場面と積む・受け取るの見せ方を決めた | ロボットがどこから呼ばれて動いているのかが、画面で分からなかった | 患者の動きの直しと合わせて、依頼158 として回している |

[図解: LOG491_conflicts_by_request.html](https://pixelstomotors.com/embeds/LOG491_conflicts_by_request.html)

病院の搬送ロボットのほかに、配膳ロボットを自分の店に入れたらどうなるかは、このシリーズの試算をもとにした別のページで試せます。

[配膳ロボットの導入前シミュレーション](https://pixelstomotors.com/serving-robot-one-less-staff)


## 作業ログ ― Claude Fable 5.2 を、病院の Unity の依頼155 で1回試す

この記事の効果の数字は、Unity の記録から数えたものです。見込みで書いた所は、見込みと書いています。費用は1ドル155円で円に直しました。

### 依頼箱と Claude Code は、Unity の作業を自動で回す仕組み

この回の Unity の作業は、どれも「依頼箱」で回しました。依頼箱は、Claude（チャットの側）が書いた依頼文を Mac のフォルダに置くと、Mac の見張り係が [Claude Code](https://www.anthropic.com/claude-code)（Mac の上でコードを書いて動かす Claude）に1件ずつ渡し、報告をフォルダに書き戻す仕組みです。Unity を人が開いて操作することはありません。作りは LOG390 に書いています。

| 言葉 | この記事での意味 |
|---|---|
| 依頼箱 | Claude が書いた依頼を、Mac の見張り係が Claude Code に渡す仕組み（iCloud の 依頼箱/ フォルダ） |
| 依頼155・依頼157・依頼158 | 依頼箱に置いた依頼の番号 |
| 見た目なしの回 | Unity で人やロボットの見た目を作らずに回す回。問題の数はこの回を正とする |
| 廊下だけ／時間で切替 | 青の道（内科の処置室→検査部）の決め方。1日じゅう外来の大廊下を通るか、外来の混む8〜11時だけ裏口の職員通路を通るか |
| 種 | 乱数の種。同じ種なら、人の出方も依頼の出方も同じになる |
| check-in の番号（cs:125 など） | Unity の場面とコードを Unity Version Control に保存したときの番号 |
| サイトの条件 | Unity が読む値をまとめたファイル hospital-unity-params.json。試算の前提の表（assumptions.json）から書き出す。Unity は値を自分で決めず、これを読む |

### Claude Fable 5.2 は、Anthropic が2026年11月9日に出したモデル

[Claude Fable 5.2](https://www.anthropic.com/claude/fable) は、Anthropic が2026年11月9日に出したモデルです。日常の決まった作業は Claude Opus 5.5、複雑で自由度の高い技術の作業は Fable 5.2、というのが Anthropic の示す使い分けです。病院の Unity の作業に効きそうかを、公表されている数字で調べました。数字はどれも Anthropic が自分で出した測定値で、前の版の Fable 5.1 との比較です。

| 伸びたとされる所 | 公表の数字（前の版 → Fable 5.2） | 病院の Unity の作業で効きそうな所 |
|---|---|---|
| 大きなコードの課題を解く | 32% → 49% | 直しても別の場所で詰まる問題の原因探し |
| 図表を読む | 45% → 73% | 図面からフロアの形を起こす・録画のコマを読む |
| シミュレーションの中でロボットを動かす | 28% → 65% | 部屋の中まで入る道・人の持ち場の配置 |
| 長い実行の中で、再現しない結果を知らせる | 数字なし | 同じ種で同じ結果になるかの確かめ |
| 費用 | 前の版より2割安い（100万語あたり入力8ドル・出力40ドル＝約1,200円・約6,000円） | 夜に長く回す依頼 |

調べた元は、[Anthropic の Fable のページ](https://www.anthropic.com/claude/fable)、[SiliconANGLE の記事](https://siliconangle.com/2026/11/09/anthropic-launches-fable-5-2-and-mythos-5-2-with-science-coding-upgrades/)、[CNBC の記事](https://www.cnbc.com/2026/11/09/anthropic-claude-fable-5-2-mythos-5-2.html)、[Android Authority の記事](https://www.androidauthority.com/anthropic-fable-5-2-mythos-5-2-released-3733161/)、[Claude の X の発表](https://x.com/claudeai/status/2119867138987176141) です。

公表の数字が自分の作業で同じだけ出るかは分からないので、次に回す予定だった依頼155 を、Fable 5.2 で回すことにしました。依頼箱の見張り係は、設定ファイル config.json の extra_args に書いた引数を Claude Code に渡します。ここに `--model claude-fable-5-2` を入れてから依頼を置き、依頼が動き出したあとで元に戻しました（設定は依頼を始めるたびに読み直すので、戻しても動いている依頼には影響しない）。アームの依頼まで Fable 5.2 になるのは望まない、という指示があったためです。

```text
変える前  "extra_args": [],
依頼155 を置く間だけ  "extra_args": ["--model", "claude-fable-5-2"],
依頼155 が動き出したあと  "extra_args": [],
```

### 化学療法のトイレの通り道を0.5m から1.5m に広げた（サイト側）

前の回の依頼154 で、化学療法の患者がトイレへ歩いて行けないことが分かっていました。トイレの扉は西の壁にあり、その前は準備室とトイレにはさまれた幅0.5m の細い所で、壁の厚みを引くと0.35m しか残りません。Unity を直す前に、正であるサイト側のフロアの形を直しました。トイレの西の壁と扉を1m 東へ動かし、通り道を1.5m にしています。1.5m は点滴の台を押して通る幅としての仮置きです。ロボットの道と距離は変わりません。

![外来化学療法室のトイレの前。左が直す前で、準備室とトイレの間の通り道は0.5m。右が直した後で、トイレの西の壁を動かして1.5m にした](https://pixelstomotors.com/media/LOG491_02_chemo_toilet_width.png)

あわせて、職員がふだん持ち場から動くときの行き先を「持ち場の所だけ」と条件に書きました。

#### diff_49c3ea4.txt（p2m-site の commit 49c3ea4 の差分。書き出したファイル hospital-unity-params.json は除く）

```diff
commit 49c3ea4 病院 h1：化学療法のトイレの前の通り道を 0.5m → 1.5m に広げた・職員のふだんの行き先を持ち場だけにする決まりを条件に足した（依頼155 の前）

diff --git a/tools/hospital_layouts/README.md b/tools/hospital_layouts/README.md
index 5f37e26..4323003 100644
--- a/tools/hospital_layouts/README.md
+++ b/tools/hospital_layouts/README.md
@@ -25,3 +25,7 @@
 - だれがどこに入るか（`access`）：外来の患者・化学療法の患者・救急の患者・看護師・医師・薬剤師・検査技師・事務・ロボット の9つの役割ごとに「座る」「入る」。図は `draw_h1_access.py`
 - 車いすの場所：待合ごとに、通路に面したベンチの列の端に 1.5m 四方（12か所）。指針（東京都 UD チェックリスト：待合に車椅子使用者が利用しやすいスペースの確保に配慮）にならう。列の端に置く形は仮置き。「ない」（車いすの人がいすの間・通路で待つ）は条件で選ぶ
 - 気になる所（直していない）：h0 から、職員の中廊下が正面玄関の前を横切っている。患者は玄関の前だけ中廊下を横切る
+
+## h1 の直し（2026-11-12）：化学療法のトイレの前の通り道
+
+外来化学療法室のトイレの前の通り道を 0.5m → 1.5m に広げた（トイレの西の壁を x114.5 → 115.5、扉も同じ壁の上で移した）。依頼154 で、壁の厚みを引くと 0.35m しかなく、化学療法の患者がトイレへ歩いて行けなかったため。点滴の台を押して通る幅として 1.5m（仮置き）。ロボットの道と距離は変わらない。
diff --git a/tools/hospital_layouts/hospital_h1.json b/tools/hospital_layouts/hospital_h1.json
index bbe4eb5..65dba9a 100644
--- a/tools/hospital_layouts/hospital_h1.json
+++ b/tools/hospital_layouts/hospital_h1.json
@@ -864,7 +864,7 @@
     "room": "外来化学療法室",
     "name": "トイレ",
     "rect": [
-     114.5,
+     115.5,
      53.0,
      120.0,
      60.0
@@ -872,7 +872,7 @@
     "doors": [
      {
       "at": [
-       114.5,
+       115.5,
        55.0
       ],
       "w": 1.0
@@ -4860,7 +4860,7 @@
      [
       114,
       53,
-      114.5,
+      115.5,
       60
      ]
     ],
@@ -4894,7 +4894,7 @@
     "room": "外来化学療法室",
     "rects": [
      [
-      114.5,
+      115.5,
       53,
       120,
       60
diff --git a/tools/hospital_layouts/make_hospital_h1.py b/tools/hospital_layouts/make_hospital_h1.py
index 63e08d5..61dc30f 100644
--- a/tools/hospital_layouts/make_hospital_h1.py
+++ b/tools/hospital_layouts/make_hospital_h1.py
@@ -135,7 +135,8 @@ for i in range(6):
     fur(R, "ベッド", (117.6, 35.5 + i * 2.6, 119.6, 36.4 + i * 2.6), "点滴のベッド")
 sub(R, "準備室", (106.0, 52.0, 114.0, 60.0), [(110.0, 52.0, 1.2)])
 fur(R, "台", (107.0, 58.6, 113.0, 59.4), "点滴の準備台")
-sub(R, "トイレ", (114.5, 53.0, 120.0, 60.0), [(114.5, 55.0, 1.0)])
+# 2026-11-12 トイレの前の通り道を 0.5m → 1.5m に広げた（依頼154：壁の厚みを引くと 0.35m で人が通れなかった。点滴の台を押して通る幅）
+sub(R, "トイレ", (115.5, 53.0, 120.0, 60.0), [(115.5, 55.0, 1.0)])
 
 # ---------------- 薬剤部（x0〜23, y0〜13）----------------
 R = "薬剤部"
@@ -356,10 +357,10 @@ ACCESS = [  # 名前, 部屋, [rect...], {役割: 座る|入る}, 補足
     ("ほかの外来の処置・検査室", "ほかの外来", [(42, 43.6, 97.95, 57.9)], {"外来の患者": E_, "看護師": E_, "医師": E_}, "処置を受ける患者だけ"),
     ("化学療法の受付・待合", "外来化学療法室", [(100.05, 31, 120, 35)], {"化学療法の患者": S_, "看護師": E_, "医師": E_, "薬剤師": E_, "ロボット": E_},
      "ロボットは受付の台の前まで。医師は点滴の場所へ通る（2026-11-11 依頼149 の4）"),
-    ("化学療法の点滴の場所", "外来化学療法室", [(100.05, 35, 120, 52), (100.05, 52, 106, 60), (114, 52, 120, 53), (114, 53, 114.5, 60)],
+    ("化学療法の点滴の場所", "外来化学療法室", [(100.05, 35, 120, 52), (100.05, 52, 106, 60), (114, 52, 120, 53), (114, 53, 115.5, 60)],
      {"化学療法の患者": S_, "看護師": E_, "医師": E_, "薬剤師": E_}, "患者は点滴のいす・ベッドで数時間"),
     ("化学療法の準備室", "外来化学療法室", [(106, 52, 114, 60)], {"看護師": E_, "薬剤師": E_}, ""),
-    ("化学療法のトイレ", "外来化学療法室", [(114.5, 53, 120, 60)], {"化学療法の患者": E_}, "点滴をつけたまま行く"),
+    ("化学療法のトイレ", "外来化学療法室", [(115.5, 53, 120, 60)], {"化学療法の患者": E_}, "点滴をつけたまま行く"),
     ("薬剤部", "薬剤部", [(0, 0, 23, 13)], {"薬剤師": S_, "ロボット": E_}, "ロボットは払い出し台の前まで"),
     ("お薬の窓口の内側", "お薬の窓口", [(0, 15.1, 17.5, 19.3)], {"薬剤師": S_}, ""),
     ("お薬の窓口の待合", "お薬の窓口", [(0, 19.3, 17.5, 27)], {"外来の患者": S_}, ""),
diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json
index b9d78b7..c95627c 100644
--- a/tools/hospital_sim/assumptions.json
+++ b/tools/hospital_sim/assumptions.json
@@ -1063,13 +1063,14 @@
     "value": {
      "持ち場の中": "いつも",
      "職員の廊下を通る（1人あたり）": "1時間に1回",
-     "中待合へ患者を呼びに出る（看護師）": "診察1回ごと"
+     "中待合へ患者を呼びに出る（看護師）": "診察1回ごと",
+     "ふだんの行き先": "持ち場の所だけ。付き添い・通り抜けのために『入る』にした所（化学療法・生理検査・救急の処置の場所・X線室など）へは、ふだんの行き来では行かない"
     },
-    "what": "職員が持ち場から動く頻度",
+    "what": "職員が持ち場から動く頻度と、ふだんの行き先",
     "basis": "仮置き",
     "source": "根拠なし。職員の廊下の人の数は、これと依頼134 の職員通路の間隔（平均60秒）が近くなるか見て確かめる",
     "n": null,
-    "updated": "2026-11-10"
+    "updated": "2026-11-12"
    },
    "hospital_staff": {
     "value": {
```

### 依頼155：トイレへ8人とも行け、問題は132件から68件になった

依頼155 の依頼文の全文です。

#### request155.md（依頼155 の依頼文の全文）

```markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 480
---
# 依頼155：病院の化学療法のトイレの通り道を広げ、職員のふだんの行き先を持ち場だけに戻して、1日を撮り直す

依頼154 の報告（claude_code_reports/20261111_hospital_154.txt）の「決めてほしいこと」1〜3 に、エイイチと決めた答え（2026-11-11）：
1 化学療法のトイレへ歩いて行けない：**サイトのフロアの形を直した**。トイレの前の通り道を 0.5 m → 1.5 m に広げた（トイレの西の壁と扉を x114.5 → 115.5）。化学療法の患者は化学療法のトイレへ行く（近い方のトイレへ回す形はやめる。行けなかったときだけ今までどおり近い方へ行かせて、その数を数える）
2 職員がふだん持ち場から動く行き先：**持ち場の所だけに戻す**。付き添い・通り抜けのために「入る」にした所（化学療法・生理検査・救急の処置の場所・X線室など）へは、ふだんの行き来では行かない。付き添い（病棟の患者と看護師）・ほかの階の職員の通り抜けは依頼154 のまま
3 Unity で決めた値（看護師が待つ点・同じ速さで歩く・X線室は立って待つ）：**このままでよい**

**今回はこの2つを直して、確かめの回を撮って見せるところまで。** 数える問題・ロボットの止まり方・人がロボットをよける決まりは変えない。
**配膳の場面・配膳の実行ファイル・配膳の台帳、配膳と共通の部品には触らない。** 変えるのは Assets/ServiceSim/Hospital/ の中だけ。見た目は依頼153 の色・決めたカメラのまま。
**瞬間移動はさせない**（エレベーターの中で現れ・消えるのはよい）。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**

## 正（読むもの）
- p2m-site main（49c3ea4）
  - フロアの形：`tools/hospital_layouts/hospital_h1.json`（md5 76084c213ce03712abcdd6fa1d143489）。前の写し（85fa5f06）との違いは4か所だけのはず：
    外来化学療法室のトイレの rect の西の端 114.5 → 115.5／その扉の at の x 114.5 → 115.5／access の化学療法の点滴の場所の細い長方形 (114,53,114.5,60) → (114,53,115.5,60)／access の化学療法のトイレ (114.5,53,120,60) → (115.5,53,120,60)
  - 条件：`tools/hospital_sim/hospital-unity-params.json`（md5 415ee6bc98d2d84e98b69914c4a3da6b）。前の写し（8cb6451a）との違いは layout・layout_back_door の md5 と、people_flow.staff_moves の「ふだんの行き先」の行・what だけのはず

## 始める前に確かめること（違えば回さずに報告して終わる）
作業場所の保留 0（cs:124 のあと）・Unity と回し係が動いていない・KIOXIA がマウント済み・上の md5 と違いの中身

## 1. 作る
- 上の 1・2 を入れる。Data/ に h1 と params の新しい写しを置く（前の写しは残す）
- check-in（保留0）して、Builds/hospital155/ を作る。前の実行ファイルは残す

## 2. 確かめ（違えば 3 は撮らずに止める）
- 依頼154 と同じ確かめ（廊下だけ×2 で1バイト一致、瞬間移動0、便16/16、立ち往生、ロボット・人が入れない所0秒（役割ごと）、時間で切替×1）
- 化学療法の患者がトイレへ行った数を、行き先ごとに（化学療法のトイレ／西／東）。化学療法のトイレへ行けなかった人が 0 人になったこと。トイレの前の通り道（x114〜115.5, y53〜60）で人どうしが詰まって止まった所が無いこと
- 職員のふだんの行き来の行き先を、役割ごと・所ごとの回数で出す。持ち場でない所が 0 回になったこと（付き添い・通り抜けは別に数える）
- 飛ばした行き先・出さなかった人が 0 人のままであること
- 問題の数を依頼143・147・149・154 と並べる（区間：外来の大廊下・職員の廊下・部屋の中・台の前）。依頼154 で増えた大廊下の東の端（化学療法の受付の台と東の縦廊下の口のまわり）の数がどう変わったか。数は見た目なしの回を正とする
- 時刻ごと（30分ごと）の所ごとの人の数（依頼154 の表と同じ形）。外来の大廊下 x0〜70 と x70〜120 を、依頼154 と flow_estimate（山場 2〜8・午後 1〜3）と並べる

## 3. 撮る（依頼154 と同じ）
- 静止画：依頼154 と同じ16枚に、寄り：化学療法のトイレの前（患者がトイレへ向かっている時刻を記録から選ぶ）を足す
- 動画：廊下だけ・0.6m/秒・種0 の1日の早回し（依頼154 と同じ作り）
- 並べた図
- 出力：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_flow155/。並べた図・静止画・動画は iCloud の …/サービスロボット導入シミュレーション/hospital/flow155/ にも写し、md5 を確かめる

## 報告
claude_code_reports/20261112_hospital_155.txt に：始める前の確かめ、1 で作ったもの、2 の確かめ（表）、3 のカメラの値と動画の長さ、出力の場所、check-in の番号、決めてほしいこと（直し方の候補は作らない）。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```

Claude Code が Fable 5.2 で回した結果です。始めて約1時間で作る・確かめの回までが終わり、残りの約2時間は Unity の1日分の録画でした。

- ねらい：化学療法の患者がトイレへ歩いて行けるようにし、職員が付き添い用の所へふだんは行かないようにする
- 変わったこと：トイレへ行くと決まった8人が全員、化学療法のトイレへ歩いて行けた（片道9〜23秒。依頼154 は8人とも西のトイレへ回っていた）。職員が持ち場でない所へ行った回数は642回から0回。走っている間の問題は132件から68件、大廊下の東の端は38件から8件
- 見込める効果：通れない所が原因で人が遠回りする、という作りの都合が1つ減った。ただし下に書くとおり、職員の動きの決まりそのものは仮のままだった

#### result155.md（依頼箱が書き戻した依頼155 の結果）

```markdown
# 結果：20261112_155_病院の化学療法のトイレの通り道を広げ職員の行き先を持ち場だけに戻して1日を撮り直す

- 状態：完了
- 始めた時刻：2026-11-12 08:11
- 終わった時刻：2026-11-12 11:17（186分）
- 作業フォルダ：/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume a7bf7c39-f6c4-4c36-a97a-83581c12f31a`

## Claude Code の報告

# 依頼155 報告

判定：合格（依頼の確かめはすべて通り、1日を撮り直しました）。ただし「持ち場の所だけ」は私の読み方で入れたので、下の「決めてほしいこと」1 を見てください。

## やったこと
- **始める前の確かめ**：保留 0（cs:124）、Unity と回し係は動いていない、KIOXIA マウント済み。サイト main 49c3ea4 の h1（76084c21）と params（415ee6bc）は md5 も違いの中身も依頼どおりでした。
- **1 化学療法のトイレ**：新しい h1 と params の写しを Data/ に足して flow で使うようにしました。動きの決まりは依頼154 のままです（行けなかったときだけ近い方へ回して数える）。
- **2 職員のふだんの行き先**：「同じ役割の職員の持ち場がある所」だけにしました。自分の持ち場の所と廊下は今までどおり除きます。付き添い・通り抜けは依頼154 のままです。
- **記録**：トイレの前の通り道にいた人ごとの秒と、歩いている途中で止まっていた秒を書く `chemo_way155.csv` を足しました。
- **check-in とビルド**：cs:125（保留 0）、`Builds/hospital155/`。前の実行ファイルは残しました。
- **回した回**：廊下だけ×2、時間で切替×1、見た目あり×1、hall×1 を回し、そのあと撮る回を回しました。静止画17枚・1日の動画・並べた図を作り、iCloud に写しました。

## 結果
- **同じ種の2回**：記録 19 の md5 がすべて同じ。見た目ありの回も同じ。hall は依頼143 の回と記録 9 が同じ。
- **瞬間移動**：ロボット 0・人 0。
- **便**：16/16（2回とも）。
- **立ち往生**：ロボット 0・助け 0。
- **入れない所にいた時間**：ロボット 0 秒、人は役割ごとに全部 0 秒。
- **飛ばした行き先・出さなかった人**：0 のまま。
- **化学療法の患者のトイレ**（行くと決まった 8 人）：化学療法のトイレ 8・西 0・東 0。行けなかった人は 0 人（依頼154 は 8 人とも西）。歩いた時間は 9〜23 秒。
- **トイレの前の通り道**：人どうしが詰まって止まった所は無し（続けて止まった最長 0.15 秒）。
- **職員のふだんの行き来**：持ち場でない所へ行った回数は 0 回（依頼154 は 1241 回のうち 642 回）。役割ごと・所ごとの回数は報告の表にあります。
- **問題の数**（走っている間の合計）：

  | | 依頼155 | 依頼154 | 依頼149 | 依頼147 | 依頼143 |
  |---|---|---|---|---|---|
  | 廊下だけ | 68 | 132 | 84 | 88 | 111 |
  | 時間で切替 | 104 | 122 | 110 | 119 | 107 |
  | 大廊下の東の端（廊下だけ） | 8 | 38 | 1 | 4 | 22 |
  | 大廊下の東の端（時間で切替） | 14 | 27 | 11 | 22 | 48 |

  区間ごと（外来の大廊下・職員の廊下・部屋の中・台の前）の内訳は報告の表にあります。
- **外来の大廊下 x0〜70 の人数**（廊下だけ）：混んでいる時間帯の平均 1.4 人（依頼154 は 2.2、目安 2〜8）。30分ごとでは 6 つとも 2 未満でした。午後の平均は 1.1 人（依頼154 は 1.3、目安 1〜3）。x70〜120 は 1日の平均 0.50 人（依頼154 は 0.69）。
- **動画**：1920×1080、48203 コマ、32分8秒。撮る回は見た目ありの確かめの回と頭からバイト一致でした。
- **静止画**：依頼154 と同じ16枚に、寄り「化学療法のトイレの前」を足しました（10時38分34秒、患者が広がった通り道から扉へ向かっている所）。
- **iCloud**：19 ファイルとも md5 が KIOXIA と同じ。

## 変えたファイル
- `Assets/ServiceSim/Hospital/` の中だけ：
  - 直したもの：`HospitalRun.cs`、`HospitalRun147.cs`、`Editor/HospitalSetup.cs`、`Hospital.unity`（場面の作り直し）
  - 足したもの：`HospitalRun155.cs`、`Data/hospital_h1-155.json`、`Data/hospital-unity-params-155.json`（＋.meta）
- 出力：`/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_flow155/`
- iCloud：`…/サービスロボット導入シミュレーション/hospital/flow155/`
- 報告：`claude_code_reports/20261112_hospital_155.txt`（写しは KIOXIA の `report155.txt`）

## 決めてほしいこと
1. **「持ち場の所だけ」の読み方**：「同じ役割の職員の持ち場がある所」と読んで入れました。この読み方だと、医師→化学療法の点滴の場所・生理検査の検査室、検査技師→X線室 は行き先に残ります。依頼149 まで行っていた持ち場の無い所（倉庫・化学療法の準備室・裏の通路・救急の待合など）へは行かなくなりました。この読み方でよいか。
2. **X線室へ行き来する病棟の患者（車いす）が救急室のまわりで長く止まった**（依頼154 では無かった）。どうするか。
   - 廊下だけの回：救急の待合で約 11 分動けず、道の引き直しが 3 回。付き添いの看護師は先に戻りました。
   - 時間で切替の回：検査の約 27 分を、X線室の外の救急の処置の場所（通り抜けるだけの所）で過ごしました。
   - だれに道をふさがれたかは、記録からは決められませんでした。
3. **外来の大廊下 x0〜70 の人数が、混んでいる時間帯に目安を下回った**（平均 2.2 → 1.4 人、目安 2〜8）。職員のふだんの行き来の行き先が変わったあとに下がりました。人を増やす動きは足していません。これでよいか。

判定：合格
```

#### report155.txt（依頼155 の報告の全文）

```text
依頼155 報告　2026-11-12
病院の化学療法のトイレの通り道を広げ、職員のふだんの行き先を持ち場だけに戻して、1日を撮り直す

■ 0. 始める前の確かめ（進めた）
- 作業場所：cs:124 が頭、保留の変更 0
- 動いている物：Unity のエディタ・画面なしの Unity・回し係はなし（動いていたのは Unity Hub だけ）
- KIOXIA：マウント済み
- p2m-site main：49c3ea4b1dfa…（依頼の 49c3ea4）
  tools/hospital_layouts/hospital_h1.json　md5 76084c213ce03712abcdd6fa1d143489（一致）
  tools/hospital_sim/hospital-unity-params.json　md5 415ee6bc98d2d84e98b69914c4a3da6b（一致）
- 前の写しとの違い（中身を項目ごとに比べた。依頼に書かれたものと同じだった）
  h1（85fa5f06 → 76084c21）：4か所だけ
    外来化学療法室のトイレの rect の西の端 114.5 → 115.5／その扉の at の x 114.5 → 115.5／
    access 化学療法の点滴の場所の4つ目の長方形 (114,53,114.5,60) → (114,53,115.5,60)／access 化学療法のトイレ (114.5,53,120,60) → (115.5,53,120,60)
  params（8cb6451a → 415ee6bc）：layout.md5・layout_back_door.md5 と、people_flow.staff_moves の what（「…頻度」→「…頻度と、ふだんの行き先」）と
    value に足された行「ふだんの行き先：持ち場の所だけ。付き添い・通り抜けのために『入る』にした所（化学療法・生理検査・救急の処置の場所・X線室など）へは、ふだんの行き来では行かない」だけ

■ 1. 作ったもの
- 新しい引数は作らず、-h147People flow（既定）の中身を直した。flow は Data/ に足した hospital_h1-155.json（76084c21）と hospital-unity-params-155.json（415ee6bc）で建てる
  （中身はサイトと同じ md5。名前だけ変えた。依頼147・149・154 の写しは残した）。-h147People hall は依頼143 の形のまま
- 化学療法のトイレ（答え 1）：形が直ったので、動きの決まりは依頼154 のまま（化学療法の患者は化学療法のトイレへ行く。歩いて行けなかったときだけ近い方（西・東）へ行かせて
  summary の flow_chemo_toilet_fallback に数える）。今回は 8 人とも化学療法のトイレへ歩いて行けた（2 の (8)）
- 職員のふだんの行き先（答え 2）：職員が持ち場から動く行き先を「持ち場の所だけ」にした。Unity での読み方は
  「その職員と同じ役割（医師・看護師・薬剤師・検査技師・事務）の職員の持ち場がある所」。自分の持ち場の所と廊下は今までどおり行き先にしない（依頼147 からの決まり）。
  頻度（1人あたり1時間に1回）・とどまる時間は変えていない。この読み方は summary の unity_only155 に書いた（決めてほしいこと 1）
  役割ごとの持ち場がある所：医師＝内科の診察室・ほかの外来の診察室・内視鏡室・救急の処置の場所・化学療法の点滴の場所・生理検査の検査室／
    看護師＝内科の診察室・内科の処置室・ほかの外来の診察室・ほかの外来の処置・検査室・内視鏡室・回復室・化学療法の点滴の場所・救急の処置の場所／
    薬剤師＝薬剤部・お薬の窓口の内側／検査技師＝中央検査室・生理検査の検査室・内科の処置室・X線室／事務＝総合受付・会計の内側・ほかの外来の中待合・医事・事務・正面玄関
- 付き添い（病棟の患者と看護師）・ほかの階の職員の通り抜け・看護師が待つ点・同じ速さで歩く・X線室は立って待つ（答え 3）は依頼154 のまま
- 数える問題・ロボットの止まり方・人がロボットをよける決まりは変えていない。配膳の場面・実行ファイル・台帳・共通の部品には触っていない。見た目（依頼153 の色・印）・カメラの決め方も同じ
- 記録に足したもの（flow だけ）：chemo_way155.csv（トイレの前の通り道 x114〜115.5・z53〜60 にいた人ごとに、いた秒・歩いている途中で止まっていた秒
  （着いて立っているのではなく、0.05 m/秒より遅い秒）・続けて止まった最長・最初と最後の時刻）。summary に flow_chemo_way_people・flow_chemo_way_longest_stop_s・unity_only155
- check-in：cs:125（保留 0）。実行ファイル Builds/hospital155/HospitalSim.app（build_info：unity_cs cs:125・pending_changes 空）。Builds/hospital127〜154 は残した。
  変えたのは Assets/ServiceSim/Hospital/ の中だけ：HospitalRun.cs・HospitalRun147.cs・Editor/HospitalSetup.cs・Hospital.unity（場面を作り直し）、
  足した HospitalRun155.cs・Data/hospital_h1-155.json・Data/hospital-unity-params-155.json（＋.meta）
  （check-in の前に同じ中身で作った試しの実行ファイルで1日を回した回 full1 も、check155a と記録 19 の md5 がすべて同じ）

■ 2. 確かめ（cs:125。廊下だけ・0.6m/秒・種0 を2回＝check155a・b、時間で切替＝check155c、見た目あり・カメラなし＝check155L、hall＝h143repro155。どれも completed）
(1) 同じ種の2回：check155a と check155b の記録 19（access147・build143・chemo_way155・crowd・elevator149・er_cross154・events・legs・moves・people147・rescues・robot_track・
    robot_zones・seats147・staff147・staff_moves147・toilet149・trips・zones147）の md5 がすべて同じ。summary.json の違いは回の名前と wall_s だけ
    見た目あり（check155L）も check155a と記録 19 の md5 がすべて同じ（summary の違いは回の名前と wall_s だけ）
    -h147People hall：h143repro155 と依頼143 の check143a の記録 9 の md5 がすべて同じ。summary.json の違いは回の名前・cs・wall_s だけ
(2) 瞬間移動：ロボット 0（1コマ最大 0.030 m）・人 0（最大 廊下だけ 0.099 m・時間で切替 0.085 m）。エレベーターの人はかごの中で現れ・消える
(3) 便：2回とも 16 便がすべて走り終わった（途中 0・走れなかった 0・遅れ 0）。最後の便が戻った 廊下だけ 31629.5 秒・時間で切替 31629.9 秒。移る 5 回
(4) 立ち往生：ロボット 0・助け 0（2回とも）。人が 180 秒動けず道を引き直した 廊下だけ 3・時間で切替 0（依頼154 は 0・0。下の (12)）。行き先の近くで止まって待った 10・5（依頼154 は 9・12）
(5) ロボットの中心が access でロボットの入らない所に入った時間：0 秒（どの所にも入っていない時間も 0 秒）
(6) 人が access で入れない所に入った時間（人の中心。役割ごと。2回とも。cross_only の長方形は入れる所として数える）：
    外来の患者 0・化学療法の患者 0・救急の患者 0・看護師 0・医師 0・薬剤師 0・検査技師 0・事務 0 秒。どの所にも入っていない時間も全部 0 秒。
    付き添いのない外来の患者が裏の通路にいた時間 0 秒
(7) 飛ばした行き先・出さなかった人（種類ごと。2回とも同じ。依頼154 と同じく全部 0 のまま）
    種類              時刻表の人数  出した  出さなかった  飛ばした行き先
    外来の患者           390        390        0             0
    付き添い             192        192        0             0
    化学療法の患者        20         20        0             0
    救急の患者            18         18        0             0
    病棟の患者            54         54        0             0
    付き添いの看護師      54         54        0             0
    見舞いの人           105        105        0             0
    ほかの階の職員       180        180        0             0
    （summary：flow_not_spawned {}・flow_er_not_spawned 0・flow_skips {}）
(8) 化学療法の患者のトイレ（行き先ごと。化学療法の患者 20 人のうち、トイレに行くと決まった 8 人）
                      化学療法のトイレ  トイレ（西）  トイレ（東）  行けなかった（近い方へ回した）
    依頼155 廊下だけ        8              0            0            0
    依頼155 時間で切替      8              0            0            0
    依頼154（2回とも）      0              8            0            8
    化学療法のトイレへ行けなかった人は 0 人になった（summary flow_chemo_toilet_fallback 0・行けるトイレがない 0）。
    席を立ってからトイレに着くまで歩いた時間 9.4〜23.2 秒（廊下だけ。帰りも 9.3〜24.0 秒でほぼ同じ。依頼154 は西のトイレまで約 85 m）
    トイレの前の通り道（x114〜115.5・z53〜60）にいた人（廊下だけ 27 人・時間で切替 25 人）：
      化学療法の患者 8 人：いた時間 合計 31 秒（1人 行きと帰りの計 最長 4.4 秒）・歩いている途中で止まっていた 0.00 秒
      職員（看護師 11・医師 5・ほかの階の職員 3）：ここは access では化学療法の点滴の場所の一部で、ふだんの行き来の行き先の点・ほかの階の職員の持ち場の点がここに当たると
        その場に立つ（1人 最長 185 秒）。歩いている途中で止まっていたのは 1人 続けて最長 0.15 秒（3コマ）
      人どうしが詰まって止まった所は無い（続けて止まった最長 0.15 秒。2回とも）
(9) 職員のふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（1日。終わったもの。左＝廊下だけ check155a／右＝時間で切替 check155c）
    医師（165／174）：内科の診察室 27／33・ほかの外来の診察室 20／18・内視鏡室 32／37・化学療法の点滴の場所 26／24・救急の処置の場所 33／31・生理検査の検査室 27／31
    看護師（311／278）：内科の診察室 43／27・内科の処置室 36／36・ほかの外来の診察室 35／34・ほかの外来の処置・検査室 32／35・内視鏡室 50／51・回復室 41／41・
      化学療法の点滴の場所 43／25・救急の処置の場所 31／29
    薬剤師（191／174）：お薬の窓口の内側 173／163・薬剤部 18／11
    検査技師（236／258）：中央検査室 42／37・生理検査の検査室 49／53・内科の処置室 72／84・X線室 73／84
    事務（318／324）：総合受付・会計の内側 79／87・ほかの外来の中待合 99／91・医事・事務 46／44・正面玄関 94／102
    持ち場でない所（その役割の持ち場が無い所）へ行った回数：0 回（2回とも）。依頼154（check154a）は 1241 回のうち 642 回が持ち場でない所だった
      （化学療法の受付・待合・準備室、生理検査の待合、救急の待合・初療室、裏の通路、倉庫、内科の器材室・検体の準備室、ほかの外来の中待合（看護師）など）
    別に数えたもの（依頼154 と同じ動き）：看護師が中待合へ呼びに出た 386 回・案A の付き添い 47 回（呼んだ 47・間に合わない 0・時間切れ 0）・
      病棟の看護師の付き添い 54 人（検査の所の中で患者のそばに立った 91 回・大廊下の端 0 回）・ほかの階の職員の通り抜け 180 人
(10) 時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部。廊下だけ check155a。形は依頼154 と同じ）
    エレベーターホール＝ホールとかごの中、トイレ＝西・東・化学療法のトイレの合計。部屋の中には持ち場の職員 約130人を含む
    時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
    7:30〜8:00     1.1        1.1          1〜3               0.4        0.5       4.6   12.8    138.5       1.1           2.8              0.1          0.7   162.1
    8:00〜8:30     1.5        2.1          2〜8               0.5        0.9      12.6   53.3    148.1       1.2           3.9              0.2          2.5   223.8
    8:30〜9:00     1.1        1.9          2〜8               0.5        1.0      22.7   84.4    161.7       0.9           3.7              0.3          3.6   279.0
    9:00〜9:30     1.7        1.9          2〜8               0.8        0.8      36.1   90.7    170.4       1.1           4.1              0.1          4.8   309.7
    9:30〜10:00     1.6        1.8          2〜8               0.8        0.7      38.1  108.2    179.5       1.1           4.2              0.1          2.9   336.5
    10:00〜10:30     1.4        2.8          2〜8               0.6        1.0      43.0  115.7    178.8       1.1           3.2              0.1          3.0   346.9
    10:30〜11:00     1.5        2.7          2〜8               0.4        0.6      36.8  121.2    183.0       1.2           3.7              0.2          4.4   352.4
    11:00〜11:30     1.3        1.4          1〜3               0.5        0.9      36.3  131.4    180.1       1.0           3.7              0.2          3.5   358.1
    11:30〜12:00     1.1        1.7          1〜3               0.5        0.7      34.5  124.6    176.1       1.2           4.4              0.2          2.7   345.4
    12:00〜12:30     1.4        1.2          1〜3               0.4        0.5      39.7  104.9    180.5       1.3           3.2              0.3          1.7   333.6
    12:30〜13:00     0.7        1.9          1〜3               0.3        0.7      41.4   71.1    184.8       1.0           3.3              0.4          1.3   304.1
    13:00〜13:30     1.5        2.2          1〜3               0.5        0.7      41.1   56.0    181.0       1.0           3.5              0.2          1.6   286.5
    13:30〜14:00     1.2        1.0          1〜3               0.7        0.8      34.3   51.0    174.2       1.0           2.5              0.2          2.5   267.6
    14:00〜14:30     0.9        0.7          1〜3               0.3        0.3      24.1   39.9    164.2       0.6           3.1              0.2          1.4   234.7
    14:30〜15:00     1.0        1.7          1〜3               0.4        0.5      18.7   33.8    156.6       1.3           3.0              0.1          0.7   215.6
    15:00〜15:30     1.2        1.1          1〜3               0.7        0.8      15.5   30.2    155.9       0.9           3.0              0.2          1.4   209.1
    15:30〜16:00     0.7        0.8          1〜3               0.3        0.4      18.5   25.7    155.9       0.8           2.9              0.3          1.2   206.3
    16:00〜16:30     1.0        1.3          1〜3               0.6        0.5      11.6   17.4    153.1       1.2           3.2              0.2          0.4   188.7
    外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.4 人・最大 6 人（依頼154 2.2 人・6 人／目安 2〜8 人）、
      空いている時間帯（7:30〜8:00・11:00〜16:30）平均 1.1 人・最大 7 人（依頼154 1.4 人・6 人）、午後（13:00〜16:30）平均 1.1 人・最大 6 人（依頼154 1.3 人・6 人／目安 1〜3 人）。
      1日の平均 1.21 人（依頼154 1.64 人・依頼149 1.58 人）。30分ごとの平均は、混んでいる時間帯 1.1〜1.7 人で、6つの時間帯とも目安の下の端 2 を下回った。
      午後 0.7〜1.5 人（目安 1〜3。下回るのは 14:00〜14:30 の 0.9・15:30〜16:00 の 0.7）
    時間で切替（check155c）：1日の平均 1.26 人（依頼154 の check154c 1.77 人）、混んでいる時間帯 平均 1.4 人・最大 6 人、空いている時間帯 平均 1.2 人・最大 6 人、午後 平均 1.2 人・最大 6 人
    大廊下 x70〜120：1日の平均 0.50 人・最大 4 人（依頼154 0.69 人・4 人。時間で切替 0.48 人／依頼154 0.72 人）
    職員の廊下：平均 1.07 人・最大 6 人（依頼154 1.13 人・5 人）
(11) 問題の数を依頼143・147・149・154 と並べる（1日・0.6m/秒・種0。1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった。区間はロボットの中心がいた所。見た目なしの回が正）
    廊下だけ                依頼155（check155a）   依頼154（check154a）   依頼149（check149a）   依頼147（check147a）   依頼143（check143a）
      走っている間 全部      6／27／32／0／0／3      17／54／51／0／0／10    9／37／37／0／0／1      8／42／35／0／0／3      23／49／31／2／1／5
        （合計）             68                      132                     84                      88                      111
        外来の大廊下         1／7／5／0／0／1        5／12／7／0／0／2       1／5／4／0／0／0        1／7／2／0／0／0        21／48／28／2／1／5
        職員の廊下           4／19／23／0／0／1      4／27／33／0／0／3      5／24／28／0／0／0      5／30／28／0／0／2      2／1／2／0／0／0
        部屋の中             1／1／4／0／0／1        8／15／11／0／0／5      3／8／5／0／0／1        2／5／5／0／0／1        0／0／1／0／0／0
      台の前で待っている間   0／47／8／0／0／0       0／64／12／0／0／0      0／65／11／0／0／0      0／66／9／0／0／0       0／0／0／0／0／0
      速いままのひやり       27                      54                      37                      42                      35
      助け                   0                       0                       0                       0                       2
      大廊下の東の端         8                       38                      1                       4                       22
    時間で切替              依頼155（check155c）   依頼154（check154c）   依頼149（check149c）   依頼147（check147c）   依頼143（check143c）
      走っている間 全部      12／42／42／0／1／7     11／52／54／0／0／5     15／39／52／0／0／4     14／49／51／0／0／5     25／60／16／1／1／4
        （合計）             104                     122                     110                     119                     107
        外来の大廊下         4／11／7／0／1／2       4／19／11／0／0／2      5／8／7／0／0／0        3／10／6／0／0／2       23／49／13／0／1／3
        職員の廊下           6／28／29／0／0／3      3／21／36／0／0／1      8／24／40／0／0／1      7／35／38／0／0／2      2／11／3／1／0／1
        部屋の中             2／3／6／0／0／2        4／12／7／0／0／2       2／7／5／0／0／3        4／4／7／0／0／1        0／0／0／0／0／0
      台の前で待っている間   0／40／7／0／0／0       0／57／12／0／0／0      0／58／11／0／0／0      0／57／5／0／0／0       0／0／0／0／0／0
      速いままのひやり       42                      52                      39                      49                      52
      助け                   0                       0                       0                       0                       1
      大廊下の東の端         14                      27                      11                      22                      48
    （玄関の通りは 0。職員の廊下＝職員の中廊下・西／東の縦廊下・外来の奥の職員通路・東の縦廊下（北））
    大廊下の東の端＝走っている間の問題のうち、ロボットの中心が x95 以上・z27 以上（化学療法の受付の台と東の縦廊下の口のまわり）のもの。
      廊下だけ 38 → 8（内訳 1／2／4／0／0／1。依頼154 は 7／15／11／0／0／5、依頼149 は 0／1／0／0／0／0）、時間で切替 27 → 14（依頼149 は 11）
    相手（廊下だけ・走っている間）：ひやり 27 のうち職員 25・患者と付き添い 1・ストレッチャー 1。よけさせられた 32 のうち職員 31。止まりきれなかった 3 は全部職員。
      時間で切替の横切り 1 は杖の人
(12) 確かめの項目のほかに気づいたこと（救急室のまわりで、X線室へ行き来する病棟の患者（車いす）が長く止まった。依頼154 では無かった）
    廊下だけ（check155a・b・L）：病棟の患者 id 543（車いす）が X線室からの帰りに救急の待合の中 (108.1, 21.8) で動けなくなり、180 秒ごとの引き直しが 3 回
      （15476.85・15656.9・15836.95 秒）。救急の待合にいた時間 663.8 秒（ほかの 16 人は 中央値 18.4 秒）。15950 秒ごろに動き出してエレベーターへ戻った（16056 秒）。
      付き添いの看護師（id 544）は先にエレベーターへ戻った（15393 秒）。その間、救急の待合には救急の患者 3 人がいた
    時間で切替（check155c）：病棟の患者 id 675（車いす）が X線室の検査の時間（1599 秒）のあいだ、X線室の中ではなく救急の処置の場所（access では通り抜けるだけの長方形の中）にいた
      （救急の処置の場所にいた時間 1666.5 秒。ほかの 16 人は 中央値 36.5 秒）。access で入れない所に入った時間は 0 秒のまま。引き直しは 0 回
    どちらの回も、その時刻に X線室・救急の処置の場所へのふだんの行き来の職員がいた（X線室の職員 3〜5 人）。1コマごとの人の位置の記録が無いので、だれに道をふさがれたかは記録からは決められない。
    検査技師のふだんの行き来で X線室へ行った回数は 依頼154 36 回 → 73 回（廊下だけ）、医師・看護師の救急の処置の場所は 23 回 → 64 回（決めてほしいこと 2）

■ 3. 撮ったもの（色A・パネル付き・1920×1080。撮る回 rec155＝廊下だけ・0.6m/秒・種0・cs:125・車いすの場所の印あり）
- 撮る回の動きは見た目なしの確かめの回と同じ：rec155 は check155L と、流して書く記録（crowd・elevator149・events・robot_track・staff_moves147・toilet149・zones147）が
  撮り終えた時刻まで頭からバイト一致。access147・build143・chemo_way155・moves・rescues・staff147・trips は md5 も同じ。legs・people147・robot_zones・seats147・er_cross154 は
  回の終わりに書く表なので、撮り終えたところで止めた分だけ違う（依頼154 と同じ）。撮る回の実時間 105.8 分（撮り終えて止める＝終了コード 5。記録はそろっている）
- カメラ（透視投影・縦の画角 40°・2720×2160 で撮って縮める。距離と注視点は依頼139 の camfit139.py と同じ決め方。上8つは依頼154 と同じ値）
  名前        見え方                                      方位  見下ろし  範囲                        注視点 (x, z)     距離
  top_all     真上の全体                                  0°    90°      x−0.5〜120.5・z−0.5〜60.5    (60.00, 30.00)   142.8 m
  w_west      引き・西半分                                左30° 75°      x−0.5〜72・z12.5〜31.5       (34.06, 21.26)    85.8 m
  w_east      引き・東半分                                左30° 75°      x48〜120.5・z12.5〜31.5      (82.56, 21.26)    85.8 m
  n_elev      寄り・エレベーターホールとトイレ（西）の前   左30° 75°      x16.5〜32・z14.5〜31.5       (24.33, 22.51)    34.0 m
  n_midwait   寄り・中待合（内科と診察室）                左30° 75°      x21〜43・z30〜42             (31.80, 35.73)    32.4 m
  n_wait      寄り・総合受付と会計の待合                  左30° 75°      x25〜70・z15〜27.5           (46.58, 20.95)    54.6 m
  n_er        寄り・救急の待合                            左30° 75°      x98〜121・z4〜31.5           (109.48, 16.64)   51.9 m
  n_erway     寄り・正面玄関から救急へ行く道              左30° 75°      x42〜121・z−0.5〜31.5        (79.76, 13.80)    99.7 m
  n_chemowc   寄り・化学療法のトイレの前（新しい）        左30° 75°      x106〜121・z46〜60.5         (113.56, 52.90)   30.6 m
- 静止画の時刻（確かめの回 check155L の zones147.csv・people147.csv・toilet149.csv・chemo_way155.csv から）：
  上の6つ：10時ごろ＝9780 秒（10時13分。9時30分〜10時30分で人がいちばん多い分・354 人）／14時ごろ＝22020 秒（13時37分。13時30分〜14時30分で人がいちばん多い分・286 人）
  n_er：救急の待合に救急の患者がいちばん多い分＝8820 秒（9時57分・3 人）／23400 秒（14時00分・2 人）
  n_erway：正面玄関から救急の待合へ歩いている救急の患者がいる分＝9120 秒（10時02分・1 人）／24180 秒（14時13分・1 人）
  n_chemowc：その日はじめに化学療法のトイレへ行く化学療法の患者（id 325。席を立った 11307.45 秒・トイレに着いた 11317.9 秒）が、
    トイレの前の通り道に入って 1 秒後＝11314.8 秒（10時38分34秒）
  開いて見て、化学療法の患者がトイレの前の通り道（広がった 1.5 m）にいてトイレの扉へ向かっていることを確かめた。並べた図の文字の切れなし
- 動画：hospital155_1日_早回し_30x.mp4　1920×1080・25コマ/秒・48203コマ・1928.1 秒（32分8.1秒）。依頼154 と同じ作り：
  7時30分（0.05 秒）から最後の便が戻った時刻（31629.5 秒＝16時17分9秒）まで、ふだん 1.2 秒ごと＝30倍で引き（ロボットのいる側：x<60 は西半分、それ以外は東半分）、
  ロボットが走っている間（16 区間）は 0.2 秒ごと＝5倍で付いて行く寄り。5倍 26221 コマ・30倍 21982 コマ
- 並べた図：hospital155_静止画17枚.png（1〜2段＝10時ごろ、3〜4段＝14時ごろ。各段4枚は依頼154 と同じ並び。5段＝寄り 化学療法のトイレの前）

■ 出力の場所
- KIOXIA：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_flow155/
  runs/（check155a・check155b・check155c・check155L・h143repro155・rec155）・stills/（静止画17枚）・sheets/（並べた図）・videos/（動画）・
  agg155_out.txt（確かめのまとめ）・camspath155*.csv・cams155.txt・md5_icloud155.txt・logs/・report155.txt（この報告の写し）・site/（サイトの h1 と params の写し）・
  tools/（run155.sh・rec155.sh・vid155.sh・test155.sh・agg155.py・cams155.py・paths155.py・pan155.py・sheet155.py と、依頼139〜154 の写し）・
  test/（check-in の前の試しの実行ファイル hospital155_testbuild_cs124 と、それで回した full1（1日））
- iCloud：…/サービスロボット導入シミュレーション/hospital/flow155/ に 並べた図・動画・stills/（静止画17枚）を写した。19 ファイルとも md5 が KIOXIA と同じ
  hospital155_静止画17枚.png b8a360998d9cc2bcee30782093cf413f ／ hospital155_1日_早回し_30x.mp4 94f6f8d660b36ef03fd1aed554a228d7（静止画は md5_icloud155.txt）

■ check-in の番号
cs:125（保留 0）。実行ファイル Builds/hospital155（cs:125）

■ 決めてほしいこと（直し方の候補は作っていない）
1. 「持ち場の所だけ」の読み方：Unity では「同じ役割の職員の持ち場がある所」と読んで入れた（自分の持ち場の所と廊下は今までどおり除く）。
   この読み方だと、依頼154 の報告で挙げた行き先のうち、医師→化学療法の点滴の場所・生理検査の検査室、検査技師→X線室 は、その役割の持ち場がある所なので行き先に残る
   （医師→化学療法の受付・待合・生理検査の待合、看護師→生理検査の待合・検査室・X線室、検査技師→救急の処置の場所 は 0 回になった）。
   また、依頼149 までふだんの行き来で行っていた、持ち場の無い所（倉庫・化学療法の準備室・内科の検体の準備室・裏の通路・救急の待合など）へも行かなくなった。この読み方でよいか
2. X線室へ行き来する病棟の患者（車いす）が救急室のまわりで長く止まった（2 の (12)。廊下だけ：救急の待合で約 11 分動けず引き直し 3 回・看護師が先に戻った。
   時間で切替：検査の時間 約 27 分を X線室の外の救急の処置の場所（通り抜けるだけの所）で過ごした）。依頼154 では無かった。どうするか
3. 外来の大廊下 x0〜70 の人数が目安を下回った（2 の (10)。混んでいる時間帯の平均 2.2 → 1.4 人、30分ごとでは 6 つとも 2 未満。目安 2〜8 人。午後の平均 1.1 人は目安 1〜3 の中）。
   職員のふだんの行き来が大廊下を通る回数が減ったため。人を増やす動きは足していない。これでよいか

判定：合格
```

#### agg155_out.txt（依頼155 の確かめのまとめの出力）

```text
== a vs b
同じ 19：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・events.csv・legs.csv・moves.csv・people147.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff_moves147.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, wall_s
== a vs L
同じ 19：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・events.csv・legs.csv・moves.csv・people147.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff_moves147.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, wall_s
== a vs test full1
同じ 19：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・events.csv・legs.csv・moves.csv・people147.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff_moves147.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, unity_cs, wall_s
== h143repro vs check143a
同じ 9：build143.csv・crowd.csv・events.csv・legs.csv・moves.csv・rescues.csv・robot_track.csv・robot_zones.csv・trips.csv
違う 0：
summary.json の違う項目： run, unity_cs, wall_s

== check155a_v06_hall_s0（廊下だけ）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.5 秒／実時間 27.1 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.099 m）／人の引き直し（180秒動けない）3／行き先の近くで止まって待った 10
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 1231 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 1）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.8 分・最短 20.2・最長 224.4（10〜90%：52.0〜171.6）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.9 分・最短 20.1・最長 213.1（10〜90%：58.1〜173.4）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.2 分・最短 128.3・最長 287.3（10〜90%：129.7〜280.3）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.7 分・最短 66.3・最長 176.9（10〜90%：67.4〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.2 分・最短 17.6・最長 43.8（10〜90%：20.7〜37.7）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.1 分・最短 17.7・最長 43.8（10〜90%：20.6〜35.7）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 179・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 3.5 分・最短 1.8・最長 8.7（10〜90%：2.4〜4.8）
飛ばした行き先（人）： なし
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 48・付き添い→トイレ（西） 33・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 70・外来の患者→トイレ（西） 79
   席を立ってから戻るまで 中央値 5.9 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 27 秒・最長 74 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 6 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 180・ほかの階の職員 エレベーターへ入る 179・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 923 秒・1人 中央値 18.4 秒・最長 663.8 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 550 秒・1人 中央値 36.5 秒・最長 40.4 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 325 化学療法のトイレ 席を立つ 11307.45 秒・着く 11317.9 秒（歩き 10.4 秒）・戻る 11518.15 秒（帰り 10.5 秒）
   id 391 化学療法のトイレ 席を立つ 13490.25 秒・着く 13507.85 秒（歩き 17.6 秒）・戻る 13735.4 秒（帰り 18.6 秒）
   id 157 化学療法のトイレ 席を立つ 13607.4 秒・着く 13624.45 秒（歩き 17.1 秒）・戻る 13995.1 秒（帰り 16.9 秒）
   id 516 化学療法のトイレ 席を立つ 17729.8 秒・着く 17742.8 秒（歩き 13.0 秒）・戻る 18004.8 秒（帰り 12.8 秒）
   id 627 化学療法のトイレ 席を立つ 18247.1 秒・着く 18270.35 秒（歩き 23.2 秒）・戻る 18554.95 秒（帰り 24.0 秒）
   id 487 化学療法のトイレ 席を立つ 19094.95 秒・着く 19104.35 秒（歩き 9.4 秒）・戻る 19381.1 秒（帰り 9.3 秒）
   id 581 化学療法のトイレ 席を立つ 22019.95 秒・着く 22037 秒（歩き 17.0 秒）・戻る 22433.25 秒（帰り 16.8 秒）
   id 602 化学療法のトイレ 席を立つ 28650 秒・着く 28665.6 秒（歩き 15.6 秒）・戻る 29063.55 秒（帰り 15.6 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 27 人：
   ほかの階の職員 3 人・いた時間 合計 408 秒（1人 最長 152.6 秒）・歩いている途中で止まっていた 合計 0.45 秒・続けて止まった最長 0.15 秒
   医師 5 人・いた時間 合計 684 秒（1人 最長 185.3 秒）・歩いている途中で止まっていた 合計 0.75 秒・続けて止まった最長 0.15 秒
   看護師 11 人・いた時間 合計 1328 秒（1人 最長 169.6 秒）・歩いている途中で止まっていた 合計 1.65 秒・続けて止まった最長 0.15 秒
   化学療法の患者 8 人・いた時間 合計 31 秒（1人 最長 4.4 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.15 秒
職員の動き（終わったもの）： 持ち場から動く 1221・呼びに出る 386・付き添う（着いた） 47
ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）
   医師 計 165：ほかの外来の診察室＊ 20・内科の診察室＊ 27・内視鏡室＊ 32・化学療法の点滴の場所＊ 26・救急の処置の場所＊ 33・生理検査の検査室＊ 27
      持ち場がある所：ほかの外来の診察室・内科の診察室・内視鏡室・化学療法の点滴の場所・救急の処置の場所・生理検査の検査室
   看護師 計 311：ほかの外来の処置・検査室＊ 32・ほかの外来の診察室＊ 35・内科の処置室＊ 36・内科の診察室＊ 43・内視鏡室＊ 50・化学療法の点滴の場所＊ 43・回復室＊ 41・救急の処置の場所＊ 31
      持ち場がある所：ほかの外来の処置・検査室・ほかの外来の診察室・内科の処置室・内科の診察室・内視鏡室・化学療法の点滴の場所・回復室・救急の処置の場所
   薬剤師 計 191：お薬の窓口の内側＊ 173・薬剤部＊ 18
      持ち場がある所：お薬の窓口の内側・薬剤部
   検査技師 計 236：X線室＊ 73・中央検査室＊ 42・内科の処置室＊ 72・生理検査の検査室＊ 49
      持ち場がある所：X線室・中央検査室・内科の処置室・生理検査の検査室
   事務 計 318：ほかの外来の中待合＊ 99・医事・事務＊ 46・正面玄関＊ 94・総合受付・会計の内側＊ 79
      持ち場がある所：ほかの外来の中待合・医事・事務・正面玄関・総合受付・会計の内側
   持ち場でない所へ行った回数 0／自分の持ち場の所が行き先 0
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     1.1        1.1          1〜3               0.4        0.5       4.6   12.8    138.5       1.1           2.8              0.1          0.7   162.1
8:00〜8:30     1.5        2.1          2〜8               0.5        0.9      12.6   53.3    148.1       1.2           3.9              0.2          2.5   223.8
8:30〜9:00     1.1        1.9          2〜8               0.5        1.0      22.7   84.4    161.7       0.9           3.7              0.3          3.6   279.0
9:00〜9:30     1.7        1.9          2〜8               0.8        0.8      36.1   90.7    170.4       1.1           4.1              0.1          4.8   309.7
9:30〜10:00     1.6        1.8          2〜8               0.8        0.7      38.1  108.2    179.5       1.1           4.2              0.1          2.9   336.5
10:00〜10:30     1.4        2.8          2〜8               0.6        1.0      43.0  115.7    178.8       1.1           3.2              0.1          3.0   346.9
10:30〜11:00     1.5        2.7          2〜8               0.4        0.6      36.8  121.2    183.0       1.2           3.7              0.2          4.4   352.4
11:00〜11:30     1.3        1.4          1〜3               0.5        0.9      36.3  131.4    180.1       1.0           3.7              0.2          3.5   358.1
11:30〜12:00     1.1        1.7          1〜3               0.5        0.7      34.5  124.6    176.1       1.2           4.4              0.2          2.7   345.4
12:00〜12:30     1.4        1.2          1〜3               0.4        0.5      39.7  104.9    180.5       1.3           3.2              0.3          1.7   333.6
12:30〜13:00     0.7        1.9          1〜3               0.3        0.7      41.4   71.1    184.8       1.0           3.3              0.4          1.3   304.1
13:00〜13:30     1.5        2.2          1〜3               0.5        0.7      41.1   56.0    181.0       1.0           3.5              0.2          1.6   286.5
13:30〜14:00     1.2        1.0          1〜3               0.7        0.8      34.3   51.0    174.2       1.0           2.5              0.2          2.5   267.6
14:00〜14:30     0.9        0.7          1〜3               0.3        0.3      24.1   39.9    164.2       0.6           3.1              0.2          1.4   234.7
14:30〜15:00     1.0        1.7          1〜3               0.4        0.5      18.7   33.8    156.6       1.3           3.0              0.1          0.7   215.6
15:00〜15:30     1.2        1.1          1〜3               0.7        0.8      15.5   30.2    155.9       0.9           3.0              0.2          1.4   209.1
15:30〜16:00     0.7        0.8          1〜3               0.3        0.4      18.5   25.7    155.9       0.8           2.9              0.3          1.2   206.3
16:00〜16:30     1.0        1.3          1〜3               0.6        0.5      11.6   17.4    153.1       1.2           3.2              0.2          0.4   188.7
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.4 人・最大 6 人（依頼154 2.2・6／目安 2〜8）／空いている時間帯 平均 1.1 人・最大 7 人（依頼154 1.4・6／目安 1〜3）
1日の平均 1.21 人（依頼154 1.64 人）
午後（13:00〜）平均 1.1 人・最大 6 人（依頼154 1.3・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.50 人・最大 4 人（依頼154 0.69 人・4 人）
職員の廊下の人数：平均 1.07 人・最大 6 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 6／27／32／0／0／3 ／ 17／54／51／0／0／10 ／ 9／37／37／0／0／1 ／ 8／42／35／0／0／3 ／ 23／49／31／2／1／5   （合計 68 ／ 132 ／ 84 ／ 88 ／ 111）
     外来の大廊下: 1／7／5／0／0／1 ／ 5／12／7／0／0／2 ／ 1／5／4／0／0／0 ／ 1／7／2／0／0／0 ／ 21／48／28／2／1／5
     職員の廊下: 4／19／23／0／0／1 ／ 4／27／33／0／0／3 ／ 5／24／28／0／0／0 ／ 5／30／28／0／0／2 ／ 2／1／2／0／0／0
     部屋の中: 1／1／4／0／0／1 ／ 8／15／11／0／0／5 ／ 3／8／5／0／0／1 ／ 2／5／5／0／0／1 ／ 0／0／1／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／47／8／0／0／0 ／ 0／64／12／0／0／0 ／ 0／65／11／0／0／0 ／ 0／66／9／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 27 ／ 54 ／ 37 ／ 42 ／ 35
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 2
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 8 ／ 38 ／ 1 ／ 4 ／ 22
   区間ごとの数（全部の種類）： 待ち 55・行き 41・移る 12・帰り 15
   相手 1 急に止まった: なし 4・スタッフ 2
   相手 2 ひやり: スタッフ 25・歩く患者・付き添い 1・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 31・歩く患者・付き添い 1
   相手 6 止まりきれなかった: スタッフ 3

== check155b_v06_hall_s0（廊下だけ）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.5 秒／実時間 26.8 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.099 m）／人の引き直し（180秒動けない）3／行き先の近くで止まって待った 10
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 1231 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 1）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.8 分・最短 20.2・最長 224.4（10〜90%：52.0〜171.6）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.9 分・最短 20.1・最長 213.1（10〜90%：58.1〜173.4）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.2 分・最短 128.3・最長 287.3（10〜90%：129.7〜280.3）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.7 分・最短 66.3・最長 176.9（10〜90%：67.4〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.2 分・最短 17.6・最長 43.8（10〜90%：20.7〜37.7）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.1 分・最短 17.7・最長 43.8（10〜90%：20.6〜35.7）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 179・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 3.5 分・最短 1.8・最長 8.7（10〜90%：2.4〜4.8）
飛ばした行き先（人）： なし
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 48・付き添い→トイレ（西） 33・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 70・外来の患者→トイレ（西） 79
   席を立ってから戻るまで 中央値 5.9 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 27 秒・最長 74 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 6 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 180・ほかの階の職員 エレベーターへ入る 179・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 923 秒・1人 中央値 18.4 秒・最長 663.8 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 550 秒・1人 中央値 36.5 秒・最長 40.4 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 325 化学療法のトイレ 席を立つ 11307.45 秒・着く 11317.9 秒（歩き 10.4 秒）・戻る 11518.15 秒（帰り 10.5 秒）
   id 391 化学療法のトイレ 席を立つ 13490.25 秒・着く 13507.85 秒（歩き 17.6 秒）・戻る 13735.4 秒（帰り 18.6 秒）
   id 157 化学療法のトイレ 席を立つ 13607.4 秒・着く 13624.45 秒（歩き 17.1 秒）・戻る 13995.1 秒（帰り 16.9 秒）
   id 516 化学療法のトイレ 席を立つ 17729.8 秒・着く 17742.8 秒（歩き 13.0 秒）・戻る 18004.8 秒（帰り 12.8 秒）
   id 627 化学療法のトイレ 席を立つ 18247.1 秒・着く 18270.35 秒（歩き 23.2 秒）・戻る 18554.95 秒（帰り 24.0 秒）
   id 487 化学療法のトイレ 席を立つ 19094.95 秒・着く 19104.35 秒（歩き 9.4 秒）・戻る 19381.1 秒（帰り 9.3 秒）
   id 581 化学療法のトイレ 席を立つ 22019.95 秒・着く 22037 秒（歩き 17.0 秒）・戻る 22433.25 秒（帰り 16.8 秒）
   id 602 化学療法のトイレ 席を立つ 28650 秒・着く 28665.6 秒（歩き 15.6 秒）・戻る 29063.55 秒（帰り 15.6 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 27 人：
   ほかの階の職員 3 人・いた時間 合計 408 秒（1人 最長 152.6 秒）・歩いている途中で止まっていた 合計 0.45 秒・続けて止まった最長 0.15 秒
   医師 5 人・いた時間 合計 684 秒（1人 最長 185.3 秒）・歩いている途中で止まっていた 合計 0.75 秒・続けて止まった最長 0.15 秒
   看護師 11 人・いた時間 合計 1328 秒（1人 最長 169.6 秒）・歩いている途中で止まっていた 合計 1.65 秒・続けて止まった最長 0.15 秒
   化学療法の患者 8 人・いた時間 合計 31 秒（1人 最長 4.4 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.15 秒
職員の動き（終わったもの）： 持ち場から動く 1221・呼びに出る 386・付き添う（着いた） 47
ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）
   医師 計 165：ほかの外来の診察室＊ 20・内科の診察室＊ 27・内視鏡室＊ 32・化学療法の点滴の場所＊ 26・救急の処置の場所＊ 33・生理検査の検査室＊ 27
      持ち場がある所：ほかの外来の診察室・内科の診察室・内視鏡室・化学療法の点滴の場所・救急の処置の場所・生理検査の検査室
   看護師 計 311：ほかの外来の処置・検査室＊ 32・ほかの外来の診察室＊ 35・内科の処置室＊ 36・内科の診察室＊ 43・内視鏡室＊ 50・化学療法の点滴の場所＊ 43・回復室＊ 41・救急の処置の場所＊ 31
      持ち場がある所：ほかの外来の処置・検査室・ほかの外来の診察室・内科の処置室・内科の診察室・内視鏡室・化学療法の点滴の場所・回復室・救急の処置の場所
   薬剤師 計 191：お薬の窓口の内側＊ 173・薬剤部＊ 18
      持ち場がある所：お薬の窓口の内側・薬剤部
   検査技師 計 236：X線室＊ 73・中央検査室＊ 42・内科の処置室＊ 72・生理検査の検査室＊ 49
      持ち場がある所：X線室・中央検査室・内科の処置室・生理検査の検査室
   事務 計 318：ほかの外来の中待合＊ 99・医事・事務＊ 46・正面玄関＊ 94・総合受付・会計の内側＊ 79
      持ち場がある所：ほかの外来の中待合・医事・事務・正面玄関・総合受付・会計の内側
   持ち場でない所へ行った回数 0／自分の持ち場の所が行き先 0
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     1.1        1.1          1〜3               0.4        0.5       4.6   12.8    138.5       1.1           2.8              0.1          0.7   162.1
8:00〜8:30     1.5        2.1          2〜8               0.5        0.9      12.6   53.3    148.1       1.2           3.9              0.2          2.5   223.8
8:30〜9:00     1.1        1.9          2〜8               0.5        1.0      22.7   84.4    161.7       0.9           3.7              0.3          3.6   279.0
9:00〜9:30     1.7        1.9          2〜8               0.8        0.8      36.1   90.7    170.4       1.1           4.1              0.1          4.8   309.7
9:30〜10:00     1.6        1.8          2〜8               0.8        0.7      38.1  108.2    179.5       1.1           4.2              0.1          2.9   336.5
10:00〜10:30     1.4        2.8          2〜8               0.6        1.0      43.0  115.7    178.8       1.1           3.2              0.1          3.0   346.9
10:30〜11:00     1.5        2.7          2〜8               0.4        0.6      36.8  121.2    183.0       1.2           3.7              0.2          4.4   352.4
11:00〜11:30     1.3        1.4          1〜3               0.5        0.9      36.3  131.4    180.1       1.0           3.7              0.2          3.5   358.1
11:30〜12:00     1.1        1.7          1〜3               0.5        0.7      34.5  124.6    176.1       1.2           4.4              0.2          2.7   345.4
12:00〜12:30     1.4        1.2          1〜3               0.4        0.5      39.7  104.9    180.5       1.3           3.2              0.3          1.7   333.6
12:30〜13:00     0.7        1.9          1〜3               0.3        0.7      41.4   71.1    184.8       1.0           3.3              0.4          1.3   304.1
13:00〜13:30     1.5        2.2          1〜3               0.5        0.7      41.1   56.0    181.0       1.0           3.5              0.2          1.6   286.5
13:30〜14:00     1.2        1.0          1〜3               0.7        0.8      34.3   51.0    174.2       1.0           2.5              0.2          2.5   267.6
14:00〜14:30     0.9        0.7          1〜3               0.3        0.3      24.1   39.9    164.2       0.6           3.1              0.2          1.4   234.7
14:30〜15:00     1.0        1.7          1〜3               0.4        0.5      18.7   33.8    156.6       1.3           3.0              0.1          0.7   215.6
15:00〜15:30     1.2        1.1          1〜3               0.7        0.8      15.5   30.2    155.9       0.9           3.0              0.2          1.4   209.1
15:30〜16:00     0.7        0.8          1〜3               0.3        0.4      18.5   25.7    155.9       0.8           2.9              0.3          1.2   206.3
16:00〜16:30     1.0        1.3          1〜3               0.6        0.5      11.6   17.4    153.1       1.2           3.2              0.2          0.4   188.7
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.4 人・最大 6 人（依頼154 2.2・6／目安 2〜8）／空いている時間帯 平均 1.1 人・最大 7 人（依頼154 1.4・6／目安 1〜3）
1日の平均 1.21 人（依頼154 1.64 人）
午後（13:00〜）平均 1.1 人・最大 6 人（依頼154 1.3・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.50 人・最大 4 人（依頼154 0.69 人・4 人）
職員の廊下の人数：平均 1.07 人・最大 6 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 6／27／32／0／0／3 ／ 17／54／51／0／0／10 ／ 9／37／37／0／0／1 ／ 8／42／35／0／0／3 ／ 23／49／31／2／1／5   （合計 68 ／ 132 ／ 84 ／ 88 ／ 111）
     外来の大廊下: 1／7／5／0／0／1 ／ 5／12／7／0／0／2 ／ 1／5／4／0／0／0 ／ 1／7／2／0／0／0 ／ 21／48／28／2／1／5
     職員の廊下: 4／19／23／0／0／1 ／ 4／27／33／0／0／3 ／ 5／24／28／0／0／0 ／ 5／30／28／0／0／2 ／ 2／1／2／0／0／0
     部屋の中: 1／1／4／0／0／1 ／ 8／15／11／0／0／5 ／ 3／8／5／0／0／1 ／ 2／5／5／0／0／1 ／ 0／0／1／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／47／8／0／0／0 ／ 0／64／12／0／0／0 ／ 0／65／11／0／0／0 ／ 0／66／9／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 27 ／ 54 ／ 37 ／ 42 ／ 35
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 2
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 8 ／ 38 ／ 1 ／ 4 ／ 22
   区間ごとの数（全部の種類）： 待ち 55・行き 41・移る 12・帰り 15
   相手 1 急に止まった: なし 4・スタッフ 2
   相手 2 ひやり: スタッフ 25・歩く患者・付き添い 1・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 31・歩く患者・付き添い 1
   相手 6 止まりきれなかった: スタッフ 3

== check155c_v06_switch_s0（時間で切替）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.9 秒／実時間 26.9 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.085 m）／人の引き直し（180秒動けない）0／行き先の近くで止まって待った 5
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 1214 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 2）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.7 分・最短 20.2・最長 217.3（10〜90%：52.0〜172.1）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.7 分・最短 20.1・最長 213.1（10〜90%：58.1〜173.2）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.0 分・最短 128.3・最長 287.3（10〜90%：129.8〜280.6）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.8 分・最短 66.1・最長 176.9（10〜90%：67.3〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.5 分・最短 17.4・最長 43.5（10〜90%：20.9〜35.7）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.4 分・最短 17.5・最長 43.5（10〜90%：20.6〜35.7）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 179・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 3.5 分・最短 1.8・最長 6.3（10〜90%：2.5〜4.8）
飛ばした行き先（人）： なし
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 49・付き添い→トイレ（西） 32・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 71・外来の患者→トイレ（西） 78
   席を立ってから戻るまで 中央値 5.8 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 27 秒・最長 74 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 6 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 180・ほかの階の職員 エレベーターへ入る 179・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 278 秒・1人 中央値 18.4 秒・最長 19.5 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 2179 秒・1人 中央値 36.5 秒・最長 1666.5 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 325 化学療法のトイレ 席を立つ 11307.45 秒・着く 11316.7 秒（歩き 9.2 秒）・戻る 11515.6 秒（帰り 9.1 秒）
   id 391 化学療法のトイレ 席を立つ 13497.15 秒・着く 13514.5 秒（歩き 17.4 秒）・戻る 13740.55 秒（帰り 17.1 秒）
   id 157 化学療法のトイレ 席を立つ 13607.4 秒・着く 13626.2 秒（歩き 18.8 秒）・戻る 13998.55 秒（帰り 18.6 秒）
   id 516 化学療法のトイレ 席を立つ 17747.65 秒・着く 17763.1 秒（歩き 15.4 秒）・戻る 18027.55 秒（帰り 15.3 秒）
   id 627 化学療法のトイレ 席を立つ 18246.8 秒・着く 18259.6 秒（歩き 12.8 秒）・戻る 18532.75 秒（帰り 12.6 秒）
   id 487 化学療法のトイレ 席を立つ 19097.7 秒・着く 19114.5 秒（歩き 16.8 秒）・戻る 19398.75 秒（帰り 16.8 秒）
   id 581 化学療法のトイレ 席を立つ 22025.15 秒・着く 22042.8 秒（歩き 17.6 秒）・戻る 22439.75 秒（帰り 17.5 秒）
   id 602 化学療法のトイレ 席を立つ 28644.4 秒・着く 28666.9 秒（歩き 22.5 秒）・戻る 29072.6 秒（帰り 23.3 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 25 人：
   ほかの階の職員 5 人・いた時間 合計 649 秒（1人 最長 167.7 秒）・歩いている途中で止まっていた 合計 0.75 秒・続けて止まった最長 0.15 秒
   医師 7 人・いた時間 合計 934 秒（1人 最長 155.5 秒）・歩いている途中で止まっていた 合計 1.05 秒・続けて止まった最長 0.15 秒
   看護師 5 人・いた時間 合計 805 秒（1人 最長 183.1 秒）・歩いている途中で止まっていた 合計 0.75 秒・続けて止まった最長 0.15 秒
   化学療法の患者 8 人・いた時間 合計 32 秒（1人 最長 4.5 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.15 秒
職員の動き（終わったもの）： 持ち場から動く 1208・呼びに出る 386・付き添う（着いた） 47
ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）
   医師 計 174：ほかの外来の診察室＊ 18・内科の診察室＊ 33・内視鏡室＊ 37・化学療法の点滴の場所＊ 24・救急の処置の場所＊ 31・生理検査の検査室＊ 31
      持ち場がある所：ほかの外来の診察室・内科の診察室・内視鏡室・化学療法の点滴の場所・救急の処置の場所・生理検査の検査室
   看護師 計 278：ほかの外来の処置・検査室＊ 35・ほかの外来の診察室＊ 34・内科の処置室＊ 36・内科の診察室＊ 27・内視鏡室＊ 51・化学療法の点滴の場所＊ 25・回復室＊ 41・救急の処置の場所＊ 29
      持ち場がある所：ほかの外来の処置・検査室・ほかの外来の診察室・内科の処置室・内科の診察室・内視鏡室・化学療法の点滴の場所・回復室・救急の処置の場所
   薬剤師 計 174：お薬の窓口の内側＊ 163・薬剤部＊ 11
      持ち場がある所：お薬の窓口の内側・薬剤部
   検査技師 計 258：X線室＊ 84・中央検査室＊ 37・内科の処置室＊ 84・生理検査の検査室＊ 53
      持ち場がある所：X線室・中央検査室・内科の処置室・生理検査の検査室
   事務 計 324：ほかの外来の中待合＊ 91・医事・事務＊ 44・正面玄関＊ 102・総合受付・会計の内側＊ 87
      持ち場がある所：ほかの外来の中待合・医事・事務・正面玄関・総合受付・会計の内側
   持ち場でない所へ行った回数 0／自分の持ち場の所が行き先 0
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     1.1        1.1          1〜3               0.4        0.5       4.6   12.8    138.5       1.1           2.8              0.1          0.7   162.1
8:00〜8:30     1.5        2.1          2〜8               0.5        0.9      12.6   53.3    148.1       1.2           3.9              0.2          2.5   223.8
8:30〜9:00     1.1        1.9          2〜8               0.5        1.0      22.7   84.4    161.7       0.9           3.7              0.3          3.6   279.0
9:00〜9:30     1.7        1.9          2〜8               0.8        0.8      36.1   90.7    170.4       1.1           4.1              0.1          4.8   309.7
9:30〜10:00     1.6        1.8          2〜8               0.8        0.7      38.1  108.2    179.4       1.1           4.2              0.1          2.9   336.5
10:00〜10:30     1.4        2.3          2〜8               0.6        1.0      42.9  115.1    179.3       1.2           3.6              0.0          3.0   347.0
10:30〜11:00     1.4        1.9          2〜8               0.3        0.7      37.1  121.0    183.4       1.0           3.4              0.1          4.5   352.3
11:00〜11:30     1.3        1.4          1〜3               0.4        0.8      36.3  131.4    180.0       1.4           3.6              0.2          3.6   358.2
11:30〜12:00     1.3        2.4          1〜3               0.5        0.9      34.4  123.4    177.3       1.0           4.1              0.2          2.7   345.0
12:00〜12:30     1.0        2.2          1〜3               0.6        0.6      39.9  104.5    181.2       1.1           3.1              0.2          1.7   333.4
12:30〜13:00     1.2        2.2          1〜3               0.3        0.7      40.7   71.5    184.4       0.9           3.2              0.2          1.4   303.9
13:00〜13:30     1.1        2.4          1〜3               0.5        0.8      43.2   55.4    180.7       1.1           3.2              0.3          1.5   287.0
13:30〜14:00     1.2        2.1          1〜3               0.5        0.7      33.4   50.3    173.5       1.1           3.3              0.4          2.7   266.4
14:00〜14:30     1.7        1.6          1〜3               0.4        0.7      24.5   38.4    163.8       1.0           3.3              0.1          1.3   234.5
14:30〜15:00     1.1        1.1          1〜3               0.7        0.6      18.4   33.8    156.4       1.2           3.2              0.1          0.7   215.7
15:00〜15:30     1.2        1.0          1〜3               0.3        0.7      15.5   29.6    156.7       0.9           3.1              0.3          1.4   209.0
15:30〜16:00     0.8        0.9          1〜3               0.3        0.5      18.6   25.5    155.8       0.9           3.1              0.1          1.2   206.3
16:00〜16:30     1.0        1.4          1〜3               0.5        0.4      11.6   17.4    153.0       1.1           3.6              0.2          0.4   188.7
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.4 人・最大 6 人（依頼154 2.0・6／目安 2〜8）／空いている時間帯 平均 1.2 人・最大 6 人（依頼154 1.6・6／目安 1〜3）
1日の平均 1.26 人（依頼154 1.77 人）
午後（13:00〜）平均 1.2 人・最大 6 人（依頼154 1.5・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.48 人・最大 4 人（依頼154 0.72 人・4 人）
職員の廊下の人数：平均 1.08 人・最大 6 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 12／42／42／0／1／7 ／ 11／52／54／0／0／5 ／ 15／39／52／0／0／4 ／ 14／49／51／0／0／5 ／ 25／60／16／1／1／4   （合計 104 ／ 122 ／ 110 ／ 119 ／ 107）
     外来の大廊下: 4／11／7／0／1／2 ／ 4／19／11／0／0／2 ／ 5／8／7／0／0／0 ／ 3／10／6／0／0／2 ／ 23／49／13／0／1／3
     職員の廊下: 6／28／29／0／0／3 ／ 3／21／36／0／0／1 ／ 8／24／40／0／0／1 ／ 7／35／38／0／0／2 ／ 2／11／3／1／0／1
     部屋の中: 2／3／6／0／0／2 ／ 4／12／7／0／0／2 ／ 2／7／5／0／0／3 ／ 4／4／7／0／0／1 ／ 0／0／0／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／40／7／0／0／0 ／ 0／57／12／0／0／0 ／ 0／58／11／0／0／0 ／ 0／57／5／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 42 ／ 52 ／ 39 ／ 49 ／ 52
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 1
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 14 ／ 27 ／ 11 ／ 22 ／ 48
   区間ごとの数（全部の種類）： 待ち 47・行き 48・移る 19・帰り 37
   相手 1 急に止まった: なし 11・スタッフ 1
   相手 2 ひやり: スタッフ 36・歩く患者・付き添い 4・杖の人 1・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 41・歩く患者・付き添い 1
   相手 5 横切り: 杖の人 1
   相手 6 止まりきれなかった: スタッフ 7

== check155L_v06_hall_s0（廊下だけ）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.5 秒／実時間 27.3 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.099 m）／人の引き直し（180秒動けない）3／行き先の近くで止まって待った 10
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 1231 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 1）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.8 分・最短 20.2・最長 224.4（10〜90%：52.0〜171.6）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.9 分・最短 20.1・最長 213.1（10〜90%：58.1〜173.4）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.2 分・最短 128.3・最長 287.3（10〜90%：129.7〜280.3）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.7 分・最短 66.3・最長 176.9（10〜90%：67.4〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.2 分・最短 17.6・最長 43.8（10〜90%：20.7〜37.7）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.1 分・最短 17.7・最長 43.8（10〜90%：20.6〜35.7）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 179・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 3.5 分・最短 1.8・最長 8.7（10〜90%：2.4〜4.8）
飛ばした行き先（人）： なし
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 48・付き添い→トイレ（西） 33・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 70・外来の患者→トイレ（西） 79
   席を立ってから戻るまで 中央値 5.9 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 27 秒・最長 74 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 6 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 180・ほかの階の職員 エレベーターへ入る 179・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 923 秒・1人 中央値 18.4 秒・最長 663.8 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 550 秒・1人 中央値 36.5 秒・最長 40.4 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 325 化学療法のトイレ 席を立つ 11307.45 秒・着く 11317.9 秒（歩き 10.4 秒）・戻る 11518.15 秒（帰り 10.5 秒）
   id 391 化学療法のトイレ 席を立つ 13490.25 秒・着く 13507.85 秒（歩き 17.6 秒）・戻る 13735.4 秒（帰り 18.6 秒）
   id 157 化学療法のトイレ 席を立つ 13607.4 秒・着く 13624.45 秒（歩き 17.1 秒）・戻る 13995.1 秒（帰り 16.9 秒）
   id 516 化学療法のトイレ 席を立つ 17729.8 秒・着く 17742.8 秒（歩き 13.0 秒）・戻る 18004.8 秒（帰り 12.8 秒）
   id 627 化学療法のトイレ 席を立つ 18247.1 秒・着く 18270.35 秒（歩き 23.2 秒）・戻る 18554.95 秒（帰り 24.0 秒）
   id 487 化学療法のトイレ 席を立つ 19094.95 秒・着く 19104.35 秒（歩き 9.4 秒）・戻る 19381.1 秒（帰り 9.3 秒）
   id 581 化学療法のトイレ 席を立つ 22019.95 秒・着く 22037 秒（歩き 17.0 秒）・戻る 22433.25 秒（帰り 16.8 秒）
   id 602 化学療法のトイレ 席を立つ 28650 秒・着く 28665.6 秒（歩き 15.6 秒）・戻る 29063.55 秒（帰り 15.6 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 27 人：
   ほかの階の職員 3 人・いた時間 合計 408 秒（1人 最長 152.6 秒）・歩いている途中で止まっていた 合計 0.45 秒・続けて止まった最長 0.15 秒
   医師 5 人・いた時間 合計 684 秒（1人 最長 185.3 秒）・歩いている途中で止まっていた 合計 0.75 秒・続けて止まった最長 0.15 秒
   看護師 11 人・いた時間 合計 1328 秒（1人 最長 169.6 秒）・歩いている途中で止まっていた 合計 1.65 秒・続けて止まった最長 0.15 秒
   化学療法の患者 8 人・いた時間 合計 31 秒（1人 最長 4.4 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.15 秒
職員の動き（終わったもの）： 持ち場から動く 1221・呼びに出る 386・付き添う（着いた） 47
ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）
   医師 計 165：ほかの外来の診察室＊ 20・内科の診察室＊ 27・内視鏡室＊ 32・化学療法の点滴の場所＊ 26・救急の処置の場所＊ 33・生理検査の検査室＊ 27
      持ち場がある所：ほかの外来の診察室・内科の診察室・内視鏡室・化学療法の点滴の場所・救急の処置の場所・生理検査の検査室
   看護師 計 311：ほかの外来の処置・検査室＊ 32・ほかの外来の診察室＊ 35・内科の処置室＊ 36・内科の診察室＊ 43・内視鏡室＊ 50・化学療法の点滴の場所＊ 43・回復室＊ 41・救急の処置の場所＊ 31
      持ち場がある所：ほかの外来の処置・検査室・ほかの外来の診察室・内科の処置室・内科の診察室・内視鏡室・化学療法の点滴の場所・回復室・救急の処置の場所
   薬剤師 計 191：お薬の窓口の内側＊ 173・薬剤部＊ 18
      持ち場がある所：お薬の窓口の内側・薬剤部
   検査技師 計 236：X線室＊ 73・中央検査室＊ 42・内科の処置室＊ 72・生理検査の検査室＊ 49
      持ち場がある所：X線室・中央検査室・内科の処置室・生理検査の検査室
   事務 計 318：ほかの外来の中待合＊ 99・医事・事務＊ 46・正面玄関＊ 94・総合受付・会計の内側＊ 79
      持ち場がある所：ほかの外来の中待合・医事・事務・正面玄関・総合受付・会計の内側
   持ち場でない所へ行った回数 0／自分の持ち場の所が行き先 0
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     1.1        1.1          1〜3               0.4        0.5       4.6   12.8    138.5       1.1           2.8              0.1          0.7   162.1
8:00〜8:30     1.5        2.1          2〜8               0.5        0.9      12.6   53.3    148.1       1.2           3.9              0.2          2.5   223.8
8:30〜9:00     1.1        1.9          2〜8               0.5        1.0      22.7   84.4    161.7       0.9           3.7              0.3          3.6   279.0
9:00〜9:30     1.7        1.9          2〜8               0.8        0.8      36.1   90.7    170.4       1.1           4.1              0.1          4.8   309.7
9:30〜10:00     1.6        1.8          2〜8               0.8        0.7      38.1  108.2    179.5       1.1           4.2              0.1          2.9   336.5
10:00〜10:30     1.4        2.8          2〜8               0.6        1.0      43.0  115.7    178.8       1.1           3.2              0.1          3.0   346.9
10:30〜11:00     1.5        2.7          2〜8               0.4        0.6      36.8  121.2    183.0       1.2           3.7              0.2          4.4   352.4
11:00〜11:30     1.3        1.4          1〜3               0.5        0.9      36.3  131.4    180.1       1.0           3.7              0.2          3.5   358.1
11:30〜12:00     1.1        1.7          1〜3               0.5        0.7      34.5  124.6    176.1       1.2           4.4              0.2          2.7   345.4
12:00〜12:30     1.4        1.2          1〜3               0.4        0.5      39.7  104.9    180.5       1.3           3.2              0.3          1.7   333.6
12:30〜13:00     0.7        1.9          1〜3               0.3        0.7      41.4   71.1    184.8       1.0           3.3              0.4          1.3   304.1
13:00〜13:30     1.5        2.2          1〜3               0.5        0.7      41.1   56.0    181.0       1.0           3.5              0.2          1.6   286.5
13:30〜14:00     1.2        1.0          1〜3               0.7        0.8      34.3   51.0    174.2       1.0           2.5              0.2          2.5   267.6
14:00〜14:30     0.9        0.7          1〜3               0.3        0.3      24.1   39.9    164.2       0.6           3.1              0.2          1.4   234.7
14:30〜15:00     1.0        1.7          1〜3               0.4        0.5      18.7   33.8    156.6       1.3           3.0              0.1          0.7   215.6
15:00〜15:30     1.2        1.1          1〜3               0.7        0.8      15.5   30.2    155.9       0.9           3.0              0.2          1.4   209.1
15:30〜16:00     0.7        0.8          1〜3               0.3        0.4      18.5   25.7    155.9       0.8           2.9              0.3          1.2   206.3
16:00〜16:30     1.0        1.3          1〜3               0.6        0.5      11.6   17.4    153.1       1.2           3.2              0.2          0.4   188.7
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.4 人・最大 6 人（依頼154 2.2・6／目安 2〜8）／空いている時間帯 平均 1.1 人・最大 7 人（依頼154 1.4・6／目安 1〜3）
1日の平均 1.21 人（依頼154 1.64 人）
午後（13:00〜）平均 1.1 人・最大 6 人（依頼154 1.3・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.50 人・最大 4 人（依頼154 0.69 人・4 人）
職員の廊下の人数：平均 1.07 人・最大 6 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 6／27／32／0／0／3 ／ 17／54／51／0／0／10 ／ 9／37／37／0／0／1 ／ 8／42／35／0／0／3 ／ 23／49／31／2／1／5   （合計 68 ／ 132 ／ 84 ／ 88 ／ 111）
     外来の大廊下: 1／7／5／0／0／1 ／ 5／12／7／0／0／2 ／ 1／5／4／0／0／0 ／ 1／7／2／0／0／0 ／ 21／48／28／2／1／5
     職員の廊下: 4／19／23／0／0／1 ／ 4／27／33／0／0／3 ／ 5／24／28／0／0／0 ／ 5／30／28／0／0／2 ／ 2／1／2／0／0／0
     部屋の中: 1／1／4／0／0／1 ／ 8／15／11／0／0／5 ／ 3／8／5／0／0／1 ／ 2／5／5／0／0／1 ／ 0／0／1／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／47／8／0／0／0 ／ 0／64／12／0／0／0 ／ 0／65／11／0／0／0 ／ 0／66／9／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 27 ／ 54 ／ 37 ／ 42 ／ 35
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 2
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 8 ／ 38 ／ 1 ／ 4 ／ 22
   区間ごとの数（全部の種類）： 待ち 55・行き 41・移る 12・帰り 15
   相手 1 急に止まった: なし 4・スタッフ 2
   相手 2 ひやり: スタッフ 25・歩く患者・付き添い 1・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 31・歩く患者・付き添い 1
   相手 6 止まりきれなかった: スタッフ 3
```

#### agg155.py（依頼155 の確かめのまとめを作るスクリプト）

```python
#!/usr/bin/env python3
"""依頼155：確かめの回のまとめ（依頼143・147・149・154 の check と並べる）。
  python3 agg155.py <回のフォルダ> [<回のフォルダ> ...]"""
import csv, json, os, sys, statistics
from collections import Counter, defaultdict

HOSP = "/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital"
R143 = {"hall": HOSP + "/20261110_floor143/runs/check143a_v06_hall_s0", "switch": HOSP + "/20261110_floor143/runs/check143c_v06_switch_s0"}
R147 = {"hall": HOSP + "/20261110_people147/runs/check147a_v06_hall_s0", "switch": HOSP + "/20261110_people147/runs/check147c_v06_switch_s0"}
R149 = {"hall": HOSP + "/20261111_flow149/runs/check149a_v06_hall_s0", "switch": HOSP + "/20261111_flow149/runs/check149c_v06_switch_s0"}
R154 = {"hall": HOSP + "/20261111_flow154/runs/check154a_v06_hall_s0", "switch": HOSP + "/20261111_flow154/runs/check154c_v06_switch_s0"}
EST = {"busy": (2, 8), "quiet": (1, 3)}   # assumptions.json crowd_people.flow_estimate
H1 = "/Users/shimazueiichi/Robotics_UX/ServiceSim/Assets/ServiceSim/Hospital/Data/hospital_h1-155.json"
TN = {1: "急に止まった", 2: "ひやり", 3: "人がよけさせられた", 4: "立ち往生", 5: "横切り", 6: "止まりきれなかった"}
LAY = json.load(open(H1, encoding="utf-8"))
COR = {c["name"]: c["rect"] for c in LAY["layout"]["corridors"]}
STAFF_COR = ["職員の中廊下", "西の縦廊下", "東の縦廊下", "外来の奥の職員通路", "東の縦廊下（北）"]
WAIT = ["総合受付・会計の待合", "お薬の窓口の待合", "生理検査の待合", "化学療法の受付・待合", "救急の待合"]
MIDW = ["内科の中待合", "ほかの外来の中待合"]
SCOR = ["職員の中廊下", "西の縦廊下", "東の縦廊下", "外来の奥の職員通路"]
ENT = ["正面玄関", "玄関の通り"]
ELV = ["エレベーターホール", "エレベーター"]
TOI = ["トイレ（西）", "トイレ（東）", "化学療法のトイレ"]
ROLES = ("外来の患者", "化学療法の患者", "救急の患者", "看護師", "医師", "薬剤師", "検査技師", "事務")


def inr(r, x, z, e=1e-4):
    return r[0] - e <= x <= r[2] + e and r[1] - e <= z <= r[3] + e


def area3(x, z):
    if inr(COR["外来の大廊下"], x, z): return "外来の大廊下"
    if any(inr(COR[n], x, z) for n in STAFF_COR): return "職員の廊下"
    if inr(COR["玄関の通り"], x, z): return "玄関の通り"
    return "部屋の中"


def rd(run, f):
    return list(csv.DictReader(open(os.path.join(run, f), encoding="utf-8")))


def one(run):
    s = json.load(open(os.path.join(run, "summary.json"), encoding="utf-8"))
    ev = rd(run, "events.csv")
    legs = {l["leg_id"]: l for l in rd(run, "legs.csv")}
    run_c, wait_c, ar = Counter(), Counter(), defaultdict(Counter)
    fast = 0
    kinds = defaultdict(Counter)
    for e in ev:
        k = int(e["type"])
        d = legs[e["leg_id"]]["dir"] if e["leg_id"] in legs else ""
        if d == "待ち":
            wait_c[k] += 1
            continue
        run_c[k] += 1
        kinds[k][e["partner_kind"] or "なし"] += 1
        if k == 2 and e["note"] == "速いまま": fast += 1
        ar[area3(float(e["robot_x"]), float(e["robot_z"]))][k] += 1
    return dict(s=s, ev=ev, legs=legs, run=run_c, wait=wait_c, area=ar, fast=fast, kinds=kinds,
                trips=rd(run, "trips.csv"), moves=rd(run, "moves.csv"), resc=rd(run, "rescues.csv"))


def line(c, ks=range(1, 7)):
    return "／".join("%d" % c[k] for k in ks)


def hm(t):
    t = int(round(t)) + 7 * 3600 + 1800
    return "%d:%02d" % (t // 3600, (t % 3600) // 60)


def halls(run):
    return {float(r["t_s"]): int(r["hall_people"]) for r in rd(run, "crowd.csv")}


def zones_table(run, s, run149):   # run149 ＝ 比べる相手（依頼154）
    zl = rd(run, "zones147.csv")
    byt = defaultdict(lambda: Counter())
    for r in zl:
        t = float(r["t_s"]); n = int(r["patients"]) + int(r["staff"])
        z = r["zone"]
        if z in WAIT: c = "待合"
        elif z in MIDW: c = "中待合"
        elif z in SCOR: c = "職員の廊下"
        elif z == "外来の大廊下": c = None
        elif z in ENT: c = "玄関"
        elif z in ELV: c = "エレベーターホール"     # ホールと中（かご）を合わせる
        elif z in TOI: c = "トイレ"
        else: c = "部屋の中"
        if c: byt[t][c] += n
        byt[t]["all"] += n
    crowd = rd(run, "crowd.csv")
    hall = {float(r["t_s"]): (int(r["hall_people"]), int(r["hall_target"]), int(r["east_people"])) for r in crowd}
    h147 = halls(run149)
    e149 = {float(r["t_s"]): int(r["east_people"]) for r in rd(run149, "crowd.csv")}
    end = s["sim_s"]
    print("時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）")
    print("時刻          大廊下x0〜70  依頼154  目安(flow_estimate)  大廊下x70〜120  依頼154  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部")
    t0 = 0.0
    while t0 < end - 1:
        ts = [t for t in hall if t0 <= t < t0 + 1800]
        if not ts: break
        avg = lambda f: sum(f(t) for t in ts) / len(ts)
        hh = avg(lambda t: hall[t][0]); ee = avg(lambda t: hall[t][2])
        tg = "%d〜%d" % (EST["busy"] if 1800 <= t0 < 12600 else EST["quiet"])
        x49 = [e149[t] for t in e149 if t0 <= t < t0 + 1800]
        e49 = sum(x49) / len(x49) if x49 else float("nan")
        t47 = [h147[t] for t in h147 if t0 <= t < t0 + 1800]
        h47 = sum(t47) / len(t47) if t47 else float("nan")
        cs = {c: avg(lambda t: byt[t][c]) for c in ("待合", "中待合", "部屋の中", "職員の廊下", "玄関", "エレベーターホール", "トイレ", "all")}
        print("%s〜%s  %6.1f     %6.1f     %8s            %6.1f     %6.1f    %6.1f %6.1f  %7.1f   %7.1f       %7.1f          %7.1f       %6.1f  %6.1f" % (
            hm(t0), hm(t0 + 1800), hh, h47, tg, ee, e49, cs["待合"], cs["中待合"], cs["部屋の中"], cs["職員の廊下"], cs["玄関"], cs["エレベーターホール"], cs["トイレ"], cs["all"]))
        t0 += 1800
    busy = [hall[t][0] for t in hall if 1800 <= t < 12600]
    quiet = [hall[t][0] for t in hall if t < 1800 or t >= 12600]
    b47 = [h147[t] for t in h147 if 1800 <= t < 12600]; q47 = [h147[t] for t in h147 if t < 1800 or t >= 12600]
    allh = list(hall.values())
    print("外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 %.1f 人・最大 %d 人（依頼154 %.1f・%d／目安 2〜8）／空いている時間帯 平均 %.1f 人・最大 %d 人（依頼154 %.1f・%d／目安 1〜3）" % (
        sum(busy) / len(busy), max(busy), sum(b47) / len(b47), max(b47), sum(quiet) / len(quiet), max(quiet), sum(q47) / len(q47), max(q47)))
    print("1日の平均 %.2f 人（依頼154 %.2f 人）" % (sum(h[0] for h in allh) / len(allh), sum(h147.values()) / len(h147)))
    pm = [hall[t][0] for t in hall if t >= 19800]          # 13:00 から（午後）
    pm49 = [h147[t] for t in h147 if t >= 19800]
    print("午後（13:00〜）平均 %.1f 人・最大 %d 人（依頼154 %.1f・%d／目安 1〜3）" % (sum(pm) / len(pm), max(pm), sum(pm49) / len(pm49), max(pm49)))
    ea = [hall[t][2] for t in hall]; e49a = list(e149.values())
    print("大廊下 x70〜120：1日の平均 %.2f 人・最大 %d 人（依頼154 %.2f 人・%d 人）" % (sum(ea) / len(ea), max(ea), sum(e49a) / len(e49a), max(e49a)))
    sc = [byt[t]["職員の廊下"] for t in byt]
    print("職員の廊下の人数：平均 %.2f 人・最大 %d 人" % (sum(sc) / len(sc), max(sc)))


def people(run, s):
    rows = rd(run, "people147.csv")
    for what in ("外来の患者", "付き添い", "化学療法の患者", "救急の患者", "病棟の患者", "病棟の看護師", "見舞いの人", "ほかの階の職員"):
        rs = [r for r in rows if r["what"] == what]
        st = sorted(float(r["stay_s"]) / 60 for r in rs if r["stay_s"])
        inside = sum(1 for r in rs if r["spawn_s"] and not r["exit_s"])
        never = sum(1 for r in rs if not r["spawn_s"])
        if len(st) >= 2:
            q = statistics.quantiles(st, n=10)
            print("%s %d 人：出た %d・回の終わりに中にいた %d・入らなかった %d／いた時間 中央値 %.1f 分・最短 %.1f・最長 %.1f（10〜90%%：%.1f〜%.1f）" % (
                what, len(rs), len(st), inside, never, statistics.median(st), st[0], st[-1], q[0], q[-1]))
        else:
            print("%s %d 人：出た %d・回の終わりに中にいた %d・入らなかった %d" % (what, len(rs), len(st), inside, never))
    pat = [r for r in rows if r["what"] in ("外来の患者",)]
    sk = Counter()
    for r in rows:
        for x in r["skipped"].split("|"):
            if x: sk[r["what"] + " " + x] += 1
    print("飛ばした行き先（人）：", "・".join("%s %d 人" % kv for kv in sk.most_common()) or "なし")
    print("初診・紹介 %d 人（外来の患者 %d 人）" % (sum(1 for r in pat if r["first_visit"] == "1"), len(pat)))
    # トイレ
    tw = Counter(r["what"] for r in rows if r["toilet_want"] == "1")
    td = Counter((r["what"], r["toilet"]) for r in rows if r["toilet"])
    tl = rd(run, "toilet149.csv")
    print("トイレ：行くと決めた人 %s／行った人 %s" % ("・".join("%s %d" % kv for kv in tw.items()),
          "・".join("%s→%s %d" % (k[0], k[1], v) for k, v in sorted(td.items()))))
    if tl:
        dur = [float(r["back_s"]) - float(r["leave_seat_s"]) for r in tl]
        walk = [float(r["arrive_s"]) - float(r["leave_seat_s"]) for r in tl]
        print("   席を立ってから戻るまで 中央値 %.1f 分（最短 %.1f・最長 %.1f）／席からトイレまで歩いた時間 中央値 %.0f 秒・最長 %.0f 秒" % (
            statistics.median(dur) / 60, min(dur) / 60, max(dur) / 60, statistics.median(walk), max(walk)))
        st = Counter(r["step"] for r in tl)
        print("   どこで待っている間に行ったか：", "・".join("%s %d" % kv for kv in st.most_common()))
    print("   行く時が来ないまま回が終わった %d・行けるトイレがない %d・戻るのを待って次へ行くのが遅れた %d 回（計 %.0f 秒）" % (
        s["flow_toilet_not_due"], s["flow_toilet_no_way"], s["flow_toilet_extend_n"], s["flow_toilet_extend_s"]))
    # エレベーター
    el = rd(run, "elevator149.csv")
    ec = Counter((r["what"], r["dir"]) for r in el)
    print("エレベーター（種類ごと）：", "・".join("%s %s %d" % (k[0], k[1], v) for k, v in sorted(ec.items())))
    wk = Counter(r["kind"] for r in el if r["what"] == "病棟の患者" and r["dir"] == "エレベーターから出る")
    print("   病棟の患者の形：", "・".join("%s %d" % kv for kv in wk.items()))
    print("出さなかった人（行き先へ歩いて行けない）：", s.get("flow_not_spawned"), "／救急の患者 %d 人（正面玄関から行ける %d）" % (s["flow_er_not_spawned"], s["flow_er_reach_from_main"]))
    xl = rd(run, "er_cross154.csv")
    for z in ("救急の待合", "救急の処置の場所"):
        rs = [r for r in xl if r["zone"] == z]
        byw = Counter(r["what"] for r in rs)
        sec = sorted(float(r["seconds"]) for r in rs)
        if sec:
            print("%s を通り抜けた外来の患者の役割の人 %d 人（%s）／そこにいた時間 合計 %.0f 秒・1人 中央値 %.1f 秒・最長 %.1f 秒" % (
                z, len(rs), "・".join("%s %d" % kv for kv in byw.items()), sum(sec), statistics.median(sec), sec[-1]))
        else: print("%s を通り抜けた外来の患者の役割の人 0 人" % z)
    print("病棟の看護師：検査の所の中のそばに立った %d・所の中の点 %d・大廊下の端で待った %d／化学療法のトイレへ行けず西・東にした %d" % (
        s.get("flow_ward_nurse_inside", -1), s.get("flow_ward_nurse_inside_random", -1), s["flow_ward_nurse_hall_waits"], s.get("flow_chemo_toilet_fallback", -1)))
    print("案A：付き添いを呼んだ %d・付き添った %d・間に合わない %d・時間切れ %d／付き添いなしで裏の通路にいた患者 %.1f 秒" % (
        s["flow_escort_calls"], s["flow_escorts"], s["flow_escort_late"], s["flow_escort_timeouts"], s["flow_back_no_escort_s"]))
    pr = [r for r in pat if "処置・検査室" in r["steps"]]
    went = sum(1 for r in pr if any(x.startswith("処置・検査室:") and x.split(":")[3] for x in r["steps"].split("|")))
    print("   処置・検査室・内視鏡室の行き先がある外来の患者 %d 人・着いた %d 人" % (len(pr), went))


def east_end(a):
    return sum(1 for e in a["ev"] if (a["legs"][e["leg_id"]]["dir"] if e["leg_id"] in a["legs"] else "") != "待ち" and float(e["robot_x"]) >= 95 and float(e["robot_z"]) >= 27)


def prob(a, b143, b147, b149, b154):
    L = [a, b154, b149, b147, b143]
    f = lambda g: " ／ ".join(g(x) for x in L)
    print("問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143")
    print("   走っている間 全部: " + f(lambda x: line(x["run"])) + "   （合計 " + f(lambda x: "%d" % sum(x["run"].values())) + "）")
    for ar in ("外来の大廊下", "職員の廊下", "部屋の中", "玄関の通り"):
        print("     %s: " % ar + f(lambda x: line(x["area"][ar])))
    print("   台の前で待っている間: " + f(lambda x: line(x["wait"])))
    print("   速いままのひやり: " + f(lambda x: "%d" % x["fast"]))
    print("   助け: " + f(lambda x: "%d" % len(x["resc"])))
    print("   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: " + f(lambda x: "%d" % east_end(x)))


def chemo155(run, s):
    rows = rd(run, "people147.csv")
    ch = [r for r in rows if r["what"] == "化学療法の患者"]
    want = [r for r in ch if r["toilet_want"] == "1"]
    td = Counter(r["toilet"] or "（まだ・行く時が来ない）" for r in want)
    print("化学療法の患者 %d 人のうちトイレに行くと決まった %d 人：行き先 %s／化学療法のトイレへ行けず西・東にした %d 人" % (
        len(ch), len(want), "・".join("%s %d" % (k, td.get(k, 0)) for k in ("化学療法のトイレ", "トイレ（西）", "トイレ（東）", "行けない", "（まだ・行く時が来ない）")), s.get("flow_chemo_toilet_fallback", -1)))
    ids = set(r["id"] for r in ch)
    tl = [r for r in rd(run, "toilet149.csv") if r["what"] == "化学療法の患者"]
    for r in tl:
        print("   id %s %s 席を立つ %s 秒・着く %s 秒（歩き %.1f 秒）・戻る %s 秒（帰り %.1f 秒）" % (r["id"], r["toilet"], r["leave_seat_s"], r["arrive_s"],
              float(r["arrive_s"]) - float(r["leave_seat_s"]), r["back_s"], float(r["back_s"]) - float(r["stay_end_s"])))
    wy = rd(run, "chemo_way155.csv")
    bw = defaultdict(list)
    for r in wy: bw[r["what"]].append(r)
    print("トイレの前の通り道（x114〜115.5・z53〜60）にいた人 %d 人：" % len(wy))
    for w, rs in bw.items():
        print("   %s %d 人・いた時間 合計 %.0f 秒（1人 最長 %.1f 秒）・歩いている途中で止まっていた 合計 %.2f 秒・続けて止まった最長 %.2f 秒" % (
            w, len(rs), sum(float(r["seconds"]) for r in rs), max(float(r["seconds"]) for r in rs), sum(float(r["stopped_s"]) for r in rs), max(float(r["longest_stop_s"]) for r in rs)))
    print("   続けて止まった最長（全員）%.2f 秒" % s.get("flow_chemo_way_longest_stop_s", -1))


def staff155(run):
    st = rd(run, "staff147.csv")
    posts = defaultdict(set); own = {}
    for r in st: posts[r["role"]].add(r["zone"]); own[r["staff_id"] if "staff_id" in r else r["id"]] = r["zone"]
    mv = rd(run, "staff_moves147.csv")
    w = Counter(m["what"] for m in mv)
    print("職員の動き（終わったもの）：", "・".join("%s %d" % kv for kv in w.items()))
    c = Counter(); non = 0; ownn = 0
    for m in mv:
        if m["what"] != "持ち場から動く": continue
        c[(m["role"], m["dest"])] += 1
        if m["dest"] not in posts[m["role"]]: non += 1
        if m["dest"] == own[m["staff_id"]]: ownn += 1
    print("ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）")
    for role in ("医師", "看護師", "薬剤師", "検査技師", "事務"):
        ks = sorted(k for k in c if k[0] == role)
        print("   %s 計 %d：%s" % (role, sum(c[k] for k in ks), "・".join("%s%s %d" % (k[1], "＊" if k[1] in posts[role] else "（持ち場でない）", c[k]) for k in ks)))
        print("      持ち場がある所：" + "・".join(sorted(posts[role])))
    print("   持ち場でない所へ行った回数 %d／自分の持ち場の所が行き先 %d" % (non, ownn))


def main():
    b143 = {k: one(v) for k, v in R143.items()}
    b147 = {k: one(v) for k, v in R147.items()}
    b149 = {k: one(v) for k, v in R149.items()}
    b154 = {k: one(v) for k, v in R154.items()}
    for run in sys.argv[1:]:
        a = one(run)
        s = a["s"]
        key = "switch" if s["plan_key"] == "switch" else "hall"
        print()
        print("== %s（%s）status %s／回の終わり %.1f 秒（%s）／最後の便が戻った %.1f 秒／実時間 %.1f 分" % (
            os.path.basename(run), s["plan"], s["status"], s["sim_s"], hm(s["sim_s"]), s["last_trip_end_s"], s["wall_s"] / 60))
        print("便 %d（走った %d・途中 %d・走れなかった %d）／移る %d（終えた %d）／出るのが遅れた 平均 %.1f 秒・最大 %.1f 秒" % (
            s["trips_scheduled"], s["trips_done"], s["trips_unfinished_at_end"], s["trips_not_run_after_end"] + s["trips_not_run_other"],
            s["moves"], s["moves_done"], s["delay_mean_s"], s["delay_max_s"]))
        print("瞬間移動 ロボット %d（1コマ最大 %.3f m）・人 %d（最大 %.3f m）／人の引き直し（180秒動けない）%d／行き先の近くで止まって待った %d" % (
            s["robot_jumps"], s["robot_max_step_m"], s["person_jumps"], s["person_max_step_m"], s.get("flow_stuck_regoes", 0), s.get("flow_near_stops", 0)))
        st = [e for e in a["ev"] if e["type"] == "4"]
        print("立ち往生 %d: %s" % (len(st), "／".join("%s〜%s秒 %s秒 (%s,%s) %s" % (e["t_s"], e["end_s"], e["value"], e["robot_x"], e["robot_z"], e["note"]) for e in st)))
        print("助け %d: %s" % (len(a["resc"]), "／".join("%s秒 (%s,%s) %s・%s" % (r["call_s"], r["x"], r["z"], r["partner"], r["outcome"]) for r in a["resc"])))
        print("ロボットの入らない所に中心が入った時間 %.2f 秒／どの所にも入っていない時間 %.2f 秒" % (s["robot_forbidden_s"], s["robot_no_zone_s"]))
        if s.get("people_mode") == "flow":
            print("人が access で入れない所に入った時間（役割ごと）：", "・".join("%s %.2f 秒" % (r, s["flow_forbidden_s_" + r]) for r in ROLES))
            print("どの所にも入っていない時間（役割ごと）：", "・".join("%s %.2f 秒" % (r, s["flow_no_zone_s_" + r]) for r in ROLES))
            print("職員 %d 人／持ち場から動いた %d 回・看護師が呼びに出た %d 回（看護師なし %d・間に合わない %d）" % (
                s["flow_staff_total"], s["flow_staff_moves"], s["flow_nurse_calls"], s["flow_nurse_calls_no_nurse"], s["flow_nurse_late"]))
            print("席 %d（使えない %d）・机などの横の点 %d・診察室 %d／所 %d 枚・区画 %d／壁の箱 %d・家具の箱 %d" % (
                s["flow_seats"], s["flow_seats_dropped"], s["flow_spots"], s["flow_consult_rooms"], s["flow_pieces"], s["flow_areas"], s["flow_wall_boxes"], s["flow_furniture_boxes"]))
            print("飛ばした行き先（理由）：", s["flow_skips"])
            people(run, s)
            chemo155(run, s)
            staff155(run)
            zones_table(run, s, R154[key])
            prob(a, b143[key], b147[key], b149[key], b154[key])
            lc = Counter()
            for e in a["ev"]:
                d = a["legs"][e["leg_id"]]["dir"] if e["leg_id"] in a["legs"] else ""
                lc[d] += 1
            print("   区間ごとの数（全部の種類）：", "・".join("%s %d" % kv for kv in lc.items()))
            for k in range(1, 7):
                if a["kinds"][k]: print("   相手 %d %s: %s" % (k, TN[k], "・".join("%s %d" % kv for kv in a["kinds"][k].most_common())))


if __name__ == "__main__":
    main()
```

### Fable 5.2 の1回と、前後の Opus 5.5 の回の時間・やり取り・費用

依頼箱の結果の JSON に、使ったモデルと費用が残ります。依頼155 は claude-fable-5-2 だけ、依頼154 と依頼157 は claude-opus-5-5 だけで動いていました。

| 依頼 | モデル | 時間 | やり取りの回数 | 費用 |
|---|---|---|---|---|
| 依頼154（通れなかった41人を通す） | Claude Opus 5.5 | 197分 | 122回 | 7.72ドル（約1,200円） |
| 依頼155（トイレの通り道・職員の行き先） | Claude Fable 5.2 | 186分 | 75回 | 4.56ドル（約700円） |
| 依頼157（職員の動きを型に替える） | Claude Opus 5.5 | 215分 | 137回 | 15.57ドル（約2,400円） |

どの回も、時間のうち2時間弱は Unity の1日分の録画です。依頼の中身が違い、依頼157 は作る物がいちばん多かったので、この表だけで Fable 5.2 の方が良いとは言えません。依頼155 では、確かめの項目に無かった車いすの患者の止まりも、気づいたこととして報告に書かれていました。Fable 5.2 にするのは依頼155 だけ、という指示だったので、依頼157 と依頼158 は今までのモデルで回しています。


## 作業ログ ― 依頼155 の1日分の記録を、役割ごとに数え直す

### 依頼155 で残った3つは、どれも人の動かし方の話だった

依頼155 は合格でしたが、「決めてほしいこと」が3つ残りました。

| 番号 | 依頼155 で残ったこと |
|---|---|
| 1 | 「持ち場の所だけ」を、Claude Code は「同じ役割の職員の持ち場がある所」と読んで入れた。医師が化学療法の点滴の場所へ行く動きなどは残る。これでよいか |
| 2 | X線室へ行き来する病棟の患者（車いす）が、救急の待合で約11分動けなかった。別の回では、検査の約27分を X線室の外で過ごした |
| 3 | 外来の大廊下の人数が、混んでいる時間帯で平均1.4人になり、目安の2〜8人を下回った |

2 と 3 は直す、1 については、役割で読み方を決める前に、人ごとの問題点を洗い出すように、という指示でした（冒頭の引用）。配膳ロボットの店では、スタッフはみな同じ仕事（配膳・片付け・案内・会計）をしていたので、役割を分けずに済んでいました。病院は、医師・看護師・薬剤師・検査技師・事務で持ち場も動きも違います。

### 人の種類・職員の行き来・問題の相手を数えるスクリプトと出力

依頼155 の廊下だけの回（check155a）の記録を、3つのスクリプトで数えました。元の記録は KIOXIA の `service_sim/unity/hospital/20261112_flow155/runs/check155a_v06_hall_s0/` にあります。

#### count_staff_moves155.py（職員のふだんの行き来を、役割ごと・持ち場→行き先ごとに数える）

```python
# 依頼155（check155a）の staff147.csv・staff_moves147.csv から、職員のふだんの行き来を役割ごと・持ち場→行き先ごとに数える（LOG491）
# 使い方：python3 count_staff_moves155.py <回のフォルダ>
import csv, collections, statistics as st, sys
C = collections.Counter
B = sys.argv[1]
S = list(csv.DictReader(open(B + '/staff147.csv', encoding='utf-8')))
M = list(csv.DictReader(open(B + '/staff_moves147.csv', encoding='utf-8')))
print('職員', C((s['role'], s['job']) for s in S))
print('座る', C((s['role'], s['sit']) for s in S))
print('動きの種類', C(m['what'] for m in M))
for role in ('医師', '看護師', '薬剤師', '検査技師', '事務'):
    L = [m for m in M if m['role'] == role and m['what'] == '持ち場から動く']
    n = len([s for s in S if s['role'] == role])
    d = [float(m['end_s']) - float(m['start_s']) for m in L if m['end_s']]
    print('\n##', role, '人数', n, '動いた', len(L), '1人1時間', round(len(L) / n / 9, 2), '1回の分 中央', round(st.median(d) / 60, 1), '最大', round(max(d) / 60, 1))
    for (p, dst), c in C((m['post'], m['dest']) for m in L).most_common(40):
        print('   ', p, '→', dst, c)
for w in set(m['what'] for m in M):
    if w == '持ち場から動く':
        continue
    L = [m for m in M if m['what'] == w]
    d = [float(m['end_s']) - float(m['start_s']) for m in L if m['end_s'] and m['start_s']]
    print(w, len(L), C(m['role'] for m in L), '分 中央', round(st.median(d) / 60, 1) if d else None, C((m['post'], m['dest']) for m in L).most_common(4))
mv = C(m['staff_id'] for m in M)
print('1日1回も動かない職員', [(s['role'], s['post']) for s in S if mv[s['id']] == 0][:40])
```

#### count_staff_moves155_out.txt（その出力）

```text
職員 Counter({('事務', '事務職員'): 38, ('看護師', '看護師'): 33, ('検査技師', '臨床検査技師'): 27, ('薬剤師', '薬剤師'): 20, ('医師', '医師'): 19, ('看護師', '看護業務補助者'): 2, ('検査技師', '診療放射線技師'): 2})
座る Counter({('看護師', '0'): 35, ('事務', '1'): 32, ('検査技師', '1'): 23, ('薬剤師', '1'): 20, ('医師', '1'): 13, ('医師', '0'): 6, ('検査技師', '0'): 6, ('事務', '0'): 6})
動きの種類 Counter({'持ち場から動く': 1221, '呼びに出る': 386, '付き添う（着いた）': 47})

## 医師 人数 19 動いた 165 1人1時間 0.96 1回の分 中央 3.5 最大 4.8
    ほかの外来の診察室 → 内視鏡室 26
    ほかの外来の診察室 → 救急の処置の場所 21
    ほかの外来の診察室 → 生理検査の検査室 17
    ほかの外来の診察室 → 化学療法の点滴の場所 12
    ほかの外来の診察室 → 内科の診察室 12
    内科の診察室 → 救急の処置の場所 7
    救急室 → ほかの外来の診察室 7
    内科の診察室 → 生理検査の検査室 6
    生理検査の検査室 → 内科の診察室 6
    内科の診察室 → ほかの外来の診察室 6
    内科の診察室 → 化学療法の点滴の場所 5
    救急室 → 内科の診察室 5
    内視鏡室 → ほかの外来の診察室 4
    救急室 → 内視鏡室 3
    内視鏡室 → 化学療法の点滴の場所 3
    外来化学療法室 → 内科の診察室 3
    生理検査の検査室 → ほかの外来の診察室 3
    救急室 → 化学療法の点滴の場所 3
    生理検査の検査室 → 化学療法の点滴の場所 3
    外来化学療法室 → 生理検査の検査室 2
    生理検査の検査室 → 救急の処置の場所 2
    内科の診察室 → 内視鏡室 2
    内視鏡室 → 救急の処置の場所 2
    外来化学療法室 → 救急の処置の場所 1
    内視鏡室 → 生理検査の検査室 1
    内視鏡室 → 内科の診察室 1
    救急室 → 生理検査の検査室 1
    外来化学療法室 → 内視鏡室 1

## 看護師 人数 35 動いた 311 1人1時間 0.99 1回の分 中央 2.8 最大 4.5
    ほかの外来（中待合・診察室） → 化学療法の点滴の場所 14
    外来化学療法室 → 内科の診察室 12
    ほかの外来（中待合・診察室） → 内科の処置室 11
    ほかの外来（中待合・診察室） → 内視鏡室 11
    ほかの外来（中待合・診察室） → 救急の処置の場所 11
    ほかの外来（中待合・診察室） → 内科の診察室 10
    内科（中待合・診察室） → 回復室 10
    救急室 → ほかの外来の診察室 10
    内科の処置室 → ほかの外来の処置・検査室 8
    ほかの外来（中待合・診察室） → 回復室 8
    救急室 → 化学療法の点滴の場所 8
    救急室 → 内視鏡室 8
    外来化学療法室 → 回復室 7
    外来化学療法室 → 内視鏡室 7
    外来化学療法室 → ほかの外来の処置・検査室 7
    内科の処置室 → 内科の診察室 7
    外来化学療法室 → 救急の処置の場所 7
    内科（中待合・診察室） → 化学療法の点滴の場所 7
    ほかの外来の処置・検査室 → ほかの外来の診察室 7
    ほかの外来の処置・検査室 → 内視鏡室 7
    ほかの外来の処置・検査室 → 化学療法の点滴の場所 6
    救急室 → 内科の処置室 6
    内科（中待合・診察室） → 内科の処置室 6
    外来化学療法室 → ほかの外来の診察室 6
    外来化学療法室 → 内科の処置室 6
    救急室 → ほかの外来の処置・検査室 6
    内視鏡室・回復室 → 内科の診察室 6
    内科（中待合・診察室） → 内視鏡室 6
    救急室 → 回復室 5
    内科（中待合・診察室） → ほかの外来の処置・検査室 5
    内視鏡室・回復室 → ほかの外来の診察室 5
    内科の処置室 → 内視鏡室 5
    内科（中待合・診察室） → 救急の処置の場所 4
    救急室 → 内科の診察室 4
    ほかの外来（中待合・診察室） → ほかの外来の処置・検査室 4
    内科の処置室 → 回復室 4
    内科の処置室 → 化学療法の点滴の場所 4
    内視鏡室・回復室 → 内科の処置室 4
    内視鏡室・回復室 → 化学療法の点滴の場所 4
    ほかの外来の処置・検査室 → 内科の処置室 3

## 薬剤師 人数 20 動いた 191 1人1時間 1.06 1回の分 中央 2.3 最大 3.4
    薬剤部 → お薬の窓口の内側 137
    薬剤部の無菌調製室 → お薬の窓口の内側 36
    お薬の窓口の内側 → 薬剤部 18

## 検査技師 人数 29 動いた 236 1人1時間 0.9 1回の分 中央 3.0 最大 4.9
    中央検査室 → X線室 43
    中央検査室 → 生理検査の検査室 35
    中央検査室 → 内科の処置室 34
    生理検査の検査室 → 内科の処置室 29
    生理検査の検査室 → 中央検査室 24
    生理検査の検査室 → X線室 19
    内科の処置室（採血） → 中央検査室 14
    内科の処置室（採血） → X線室 11
    内科の処置室（採血） → 生理検査の検査室 10
    X線室 → 内科の処置室 9
    X線室 → 生理検査の検査室 4
    X線室 → 中央検査室 4

## 事務 人数 38 動いた 318 1人1時間 0.93 1回の分 中央 2.4 最大 3.7
    医事・事務 → ほかの外来の中待合 67
    医事・事務 → 総合受付・会計の内側 65
    医事・事務 → 正面玄関 53
    総合受付 → ほかの外来の中待合 18
    会計 → 正面玄関 17
    総合受付 → 医事・事務 15
    会計 → 医事・事務 14
    各科の受付 → 正面玄関 14
    会計 → ほかの外来の中待合 10
    各科の受付 → 医事・事務 10
    総合受付 → 正面玄関 10
    各科の受付 → 総合受付・会計の内側 9
    正面玄関の案内 → 医事・事務 7
    正面玄関の案内 → 総合受付・会計の内側 5
    正面玄関の案内 → ほかの外来の中待合 4
呼びに出る 386 Counter({'看護師': 386}) 分 中央 0.1 [(('ほかの外来（中待合・診察室）', '中待合'), 268), (('内科（中待合・診察室）', '中待合'), 118)]
付き添う（着いた） 47 Counter({'看護師': 47}) 分 中央 0.5 [(('ほかの外来（中待合・診察室）', 'ほかの外来の処置・検査室'), 34), (('内科（中待合・診察室）', '内視鏡室'), 13)]
1日1回も動かない職員 []
```

#### count_partners155.py（ロボットの問題の相手がだれで、何をしていたかを数える）

```python
# 依頼155（check155a）の events.csv から、ロボットの問題の相手がだれで、そのとき何をしていたかを数える（LOG491）
# 相手の番号は職員（staff147.csv）と人（people147.csv）で同じ数字が重なることがあるので、相手の種類「スタッフ」は先に職員の表で引いている（おおよその数）
# 使い方：python3 count_partners155.py <回のフォルダ>
import csv, collections, sys
C = collections.Counter
B = sys.argv[1]
S = {s['id']: s for s in csv.DictReader(open(B + '/staff147.csv', encoding='utf-8'))}
P = {p['id']: p for p in csv.DictReader(open(B + '/people147.csv', encoding='utf-8'))}
E = list(csv.DictReader(open(B + '/events.csv', encoding='utf-8')))
M = list(csv.DictReader(open(B + '/staff_moves147.csv', encoding='utf-8')))


def who(e):
    k, i = e['partner_kind'], e['partner_id']
    t = float(e['t_s'])
    if k == 'スタッフ':
        if i in S:
            s = S[i]
            act = '持ち場'
            for m in M:
                if m['staff_id'] == i and m['start_s'] and float(m['start_s']) - 1 <= t <= (float(m['end_s']) if m['end_s'] else 1e9) + 1:
                    act = m['what'] + '→' + m['dest']
                    break
            return (s['role'], s['post'], act)
        if i in P:
            return (P[i]['what'], '', '')
        return ('スタッフ?', '', '')
    if i in P:
        return (P[i]['what'], P[i]['kind'], '')
    return (k, '', '')


run = [e for e in E if e['dir'] != '待ち']
wait = [e for e in E if e['dir'] == '待ち']
print('走っている間', len(run))
for k, c in C((who(e)[0], e['area']) for e in run).most_common():
    print('  ', k, c)
print('  何をしていた人か')
for k, c in C((who(e)[0], who(e)[2].split('→')[0]) for e in run).most_common():
    print('  ', k, c)
for k, c in C(who(e) for e in run).most_common(12):
    print('    ', k, c)
print('待っている間', len(wait))
for k, c in C((who(e)[0], who(e)[2].split('→')[0], e['area']) for e in wait).most_common():
    print('  ', k, c)
```

#### count_partners155_out.txt（その出力）

```text
走っている間 68
   ('看護師', '廊下') 13
   ('事務', '廊下') 13
   ('検査技師', '廊下') 9
   ('外来の患者', '廊下') 5
   ('なし', '廊下') 4
   ('病棟の患者', '部屋の中') 4
   ('病棟の患者', '廊下') 4
   ('付き添い', '廊下') 3
   ('医師', '廊下') 3
   ('検査技師', '部屋の中') 2
   ('病棟の看護師', '廊下') 2
   ('看護師', '部屋の中') 1
   ('救急の患者', '廊下') 1
   ('ほかの階の職員', '廊下') 1
   ('化学療法の患者', '廊下') 1
   ('見舞いの人', '廊下') 1
   ('ストレッチャー', '廊下') 1
  何をしていた人か
   ('看護師', '持ち場から動く') 11
   ('事務', '持ち場') 8
   ('病棟の患者', '') 8
   ('検査技師', '持ち場') 6
   ('検査技師', '持ち場から動く') 5
   ('事務', '持ち場から動く') 5
   ('外来の患者', '') 5
   ('なし', '') 4
   ('付き添い', '') 3
   ('看護師', '持ち場') 3
   ('病棟の看護師', '') 2
   ('医師', '持ち場から動く') 2
   ('医師', '持ち場') 1
   ('救急の患者', '') 1
   ('ほかの階の職員', '') 1
   ('化学療法の患者', '') 1
   ('見舞いの人', '') 1
   ('ストレッチャー', '') 1
     ('事務', '各科の受付', '持ち場') 8
     ('病棟の患者', '', '') 8
     ('外来の患者', '', '') 5
     ('看護師', '内科（中待合・診察室）', '持ち場から動く→化学療法の点滴の場所') 5
     ('なし', '', '') 4
     ('検査技師', '内科の処置室（採血）', '持ち場') 3
     ('付き添い', '', '') 3
     ('検査技師', '中央検査室', '持ち場から動く→X線室') 2
     ('病棟の看護師', '', '') 2
     ('検査技師', '中央検査室', '持ち場') 2
     ('看護師', '外来化学療法室', '持ち場から動く→内科の診察室') 2
     ('事務', '医事・事務', '持ち場から動く→総合受付・会計の内側') 2
待っている間 55
   ('薬剤師', '持ち場', '部屋の中') 12
   ('検査技師', '持ち場から動く', '部屋の中') 10
   ('薬剤師', '持ち場から動く', '部屋の中') 10
   ('検査技師', '持ち場', '部屋の中') 8
   ('看護師', '持ち場から動く', '部屋の中') 5
   ('看護師', '持ち場', '部屋の中') 2
   ('救急の患者', '', '部屋の中') 2
   ('スタッフ?', '', '部屋の中') 2
   ('医師', '持ち場から動く', '部屋の中') 1
   ('医師', '持ち場', '部屋の中') 1
   ('外来の患者', '', '部屋の中') 1
   ('歩く患者・付き添い', '', '部屋の中') 1
```

#### count_people155.py（患者・付き添い・見舞いの人・ほかの階の職員の動きを数える）

```python
# 依頼155（check155a）の people147.csv から、人の種類ごとの動きを数える（LOG491）
# 使い方：python3 count_people155.py <回のフォルダ>
import csv, collections, statistics as st, sys
C = collections.Counter
P = list(csv.DictReader(open(sys.argv[1] + '/people147.csv', encoding='utf-8')))
print('人の種類×動き方', C((p['what'], p['kind']) for p in P))


def f(x):
    try:
        return float(x)
    except Exception:
        return None


for w in sorted(set(p['what'] for p in P)):
    L = [p for p in P if p['what'] == w]
    s = [f(p['stay_s']) for p in L if f(p['stay_s'])]
    ex = [f(p['exit_s']) for p in L if f(p['exit_s'])]
    print(w, len(L), '滞在分 中央', round(st.median(s) / 60, 1) if s else None, '最大', round(max(s) / 60) if s else None,
          '出なかった', len(L) - len(ex), 'from/to', C((p['from'], p['to']) for p in L).most_common(3))
step = collections.defaultdict(list)
how = collections.defaultdict(C)
for p in P:
    if p['what'] != '外来の患者':
        continue
    for s in p['steps'].split('|'):
        a = s.split(':')
        if len(a) >= 4 and f(a[1]) is not None:
            step[a[0]].append(f(a[1]) / 60)
            how[a[0]][a[4] if len(a) > 4 else ''] += 1
for k, v in step.items():
    print('外来 行き先', k, len(v), '分 中央', round(st.median(v), 1), '最大', round(max(v)), '0分', sum(1 for x in v if x < 0.2), dict(how[k].most_common(4)))
print('科', C(p['dept'] for p in P if p['what'] == '外来の患者'))
print('トイレ', C((p['what'], p['toilet_want'], p['toilet']) for p in P).most_common(20))
for w in ('化学療法の患者', '救急の患者', '病棟の患者', '見舞いの人', 'ほかの階の職員'):
    for p in [p for p in P if p['what'] == w][:2]:
        print(w, p['kind'], p['spawn_s'], p['exit_s'], p['steps'][:300], p['from'], p['to'])
```

#### count_people155_out.txt（その出力）

```text
人の種類×動き方 Counter({('外来の患者', '歩く患者・付き添い'): 375, ('付き添い', '歩く患者・付き添い'): 188, ('ほかの階の職員', 'スタッフ'): 180, ('見舞いの人', '歩く患者・付き添い'): 105, ('病棟の看護師', 'スタッフ'): 54, ('病棟の患者', '歩く患者・付き添い'): 28, ('病棟の患者', '車いす'): 26, ('化学療法の患者', '歩く患者・付き添い'): 20, ('救急の患者', '歩く患者・付き添い'): 18, ('外来の患者', '杖の人'): 11, ('付き添い', '杖の人'): 4, ('外来の患者', '車いす'): 4})
ほかの階の職員 180 滞在分 中央 3.5 最大 9 出なかった 1 from/to [(('エレベーター', 'エレベーター'), 180)]
付き添い 192 滞在分 中央 103.9 最大 213 出なかった 10 from/to [(('正面玄関', '正面玄関'), 192)]
化学療法の患者 20 滞在分 中央 188.2 最大 287 出なかった 3 from/to [(('正面玄関', '正面玄関'), 20)]
外来の患者 390 滞在分 中央 103.8 最大 224 出なかった 15 from/to [(('正面玄関', '正面玄関'), 390)]
救急の患者 18 滞在分 中央 84.7 最大 177 出なかった 4 from/to [(('正面玄関', '正面玄関'), 18)]
病棟の患者 54 滞在分 中央 30.2 最大 44 出なかった 2 from/to [(('エレベーター', 'エレベーター'), 54)]
病棟の看護師 54 滞在分 中央 30.1 最大 44 出なかった 2 from/to [(('エレベーター', 'エレベーター'), 54)]
見舞いの人 105 滞在分 中央 0.5 最大 1 出なかった 1 from/to [(('エレベーター', '正面玄関'), 53), (('正面玄関', 'エレベーター'), 52)]
外来 行き先 総合受付 390 分 中央 2.0 最大 3 0分 0 {'カウンター': 390}
外来 行き先 内科の処置室 60 分 中央 16.7 最大 25 0分 0 {'いす': 40, 'ベッド': 20}
外来 行き先 中待合 390 分 中央 40.6 最大 119 0分 0 {'ベンチ': 379, '立って待つ': 7, '車いすの場所': 4}
外来 行き先 診察室 390 分 中央 8.9 最大 40 0分 1 {'診察室（看護師が呼んだ）': 385, '': 4, '診察室（看護師が間に合わない）': 1}
外来 行き先 生理検査の待合 48 分 中央 0.0 最大 0 0分 48 {'ベンチ': 47, '': 1}
外来 行き先 生理検査の検査室 48 分 中央 24.1 最大 30 0分 0 {'ベッド': 47, '': 1}
外来 行き先 会計の待合 390 分 中央 17.2 最大 25 0分 0 {'ベンチ': 377, '': 9, '車いすの場所': 4}
外来 行き先 正面玄関 390 分 中央 0.0 最大 0 0分 390 {'': 390}
外来 行き先 中待合（処置・検査室を待つ） 47 分 中央 0.0 最大 0 0分 47 {'ベンチ': 47}
外来 行き先 処置・検査室 47 分 中央 15.0 最大 20 0分 0 {'処置・検査室（看護師が付き添う）': 47}
外来 行き先 総合受付の待合 34 分 中央 23.6 最大 30 0分 0 {'ベンチ': 33, '車いすの場所': 1}
外来 行き先 お薬の窓口の待合 69 分 中央 9.2 最大 15 0分 0 {'ベンチ': 67, '': 2}
科 Counter({'内科': 120, '外科・整形外科': 90, '小児科': 90, '眼科・耳鼻科': 90})
トイレ [(('外来の患者', '0', ''), 240), (('ほかの階の職員', '0', ''), 180), (('付き添い', '0', ''), 109), (('見舞いの人', '0', ''), 105), (('外来の患者', '1', 'トイレ（西）'), 79), (('外来の患者', '1', 'トイレ（東）'), 70), (('病棟の患者', '0', ''), 54), (('病棟の看護師', '0', ''), 54), (('付き添い', '1', 'トイレ（東）'), 48), (('付き添い', '1', 'トイレ（西）'), 33), (('救急の患者', '0', ''), 18), (('化学療法の患者', '0', ''), 12), (('化学療法の患者', '1', '化学療法のトイレ'), 8), (('付き添い', '1', ''), 2), (('外来の患者', '1', ''), 1)]
化学療法の患者 歩く患者・付き添い 3895.95 14237.15 化学療法の受付・待合:0:3979.5:3979.55:ベンチ|点滴:10144.5:4002.95:14147.5:リクライニングチェア|正面玄関:0::: 正面玄関 正面玄関
化学療法の患者 歩く患者・付き添い 5075.6 22314.3 化学療法の受付・待合:0:5148.2:5148.25:ベンチ|点滴:17082.8:5156.55:22239.4:ベッド|正面玄関:0::: 正面玄関 正面玄関
救急の患者 歩く患者・付き添い 683.05 11295.2 救急の待合:5203.866:768.45:5972.35:ベンチ|処置ベッド:5203.866:5990.15:11194.05:ベッド|正面玄関:0::: 正面玄関 正面玄関
救急の患者 歩く患者・付き添い 3503.2 7760.65 救急の待合:2044.376:3577:5621.4:ベンチ|処置ベッド:2044.376:5636.3:7680.7:ベッド|正面玄関:0::: 正面玄関 正面玄関
病棟の患者 歩く患者・付き添い 469 2299.5 生理検査の待合:0:532.05:532.1:ベンチ|生理検査の検査室:1689.589:552:2241.6:ベッド エレベーター エレベーター
病棟の患者 車いす 1098.75 2991.75 生理検査の待合:0:1184.1:1184.15:車いすの場所|生理検査の検査室:1699.35:1198.25:2897.65:ベッド エレベーター エレベーター
見舞いの人 歩く患者・付き添い 19905.2 19936.8  正面玄関 エレベーター
見舞いの人 歩く患者・付き添い 19950 19980.2  エレベーター 正面玄関
ほかの階の職員 スタッフ 67.75 358.9 持ち場（外来化学療法室）:113.926:155.6:269.55:立って待つ エレベーター エレベーター
ほかの階の職員 スタッフ 312.7 528 持ち場（薬剤部）:150.179:346.3:496.5:立って待つ エレベーター エレベーター
```

### 職員は5つの役割とも、1時間に1回のくじ引きで科をまたいでいた

職員の動きの決まりは、依頼147 で入れたものでした。1人が1時間に約1回、行き先をくじ引きで選び、2〜4分いて戻ります。依頼155 で行き先を「同じ役割の持ち場がある所」に絞っても、くじ引きはそのままです。数えると、どの役割も1人あたり1時間に0.9〜1.06回動いていて、医師も事務も同じ動き方でした。

![依頼155 の1日分の、医師19人（上・165回）と看護師35人（下・311回）のふだんの行き来。丸が持ち場、矢印が太いほど回数が多い。外来の診察室の医師が内視鏡室・救急・生理検査へ、看護師が科をまたいで行き来している](https://pixelstomotors.com/media/LOG491_01_staff_moves155.png)

| 役割 | 人数 | 記録に出ていた動き | 実際と違いそうな所 |
|---|---|---|---|
| 医師 | 19人 | 外来の診察室の医師が、内視鏡室へ28回・救急へ28回・生理検査へ23回 | 外来の時間に診察室を空けて別の科へ行く。1人しかいない化学療法の医師も持ち場を離れる |
| 看護師 | 35人 | ふだんの行き来311回のほとんどが科をまたぐ | 検体や薬を運ぶ用事が無い。ロボットが代わるはずの仕事が場面にいない |
| 薬剤師 | 20人 | 薬剤部からお薬の窓口へ173回 | 無菌調製室の4人も1時間に1回、窓口へ出る |
| 検査技師 | 29人 | X線室へ73回 | X線室は診療放射線技師の持ち場なのに、臨床検査技師が行く。役割を1つにまとめていたため |
| 事務 | 38人 | 医事・事務の20人が中待合へ67回・正面玄関へ53回 | 受付や会計の人が窓口を離れて歩き回る |

「実際と違いそう」は Claude の見立てで、現場で確かめたものではありません。

**ロボットの問題の相手を数えると、走っている間の68件のうち約6割が職員（看護師14・事務13・検査技師11・医師3）で、台の前で待っている間の55件はほぼ全部が職員でした。** 数えていた問題の大半は、この仮の動きとロボットが会った回数だったことになります。なお、Claude Code が依頼157 の報告で別の数え方（記録の相手の種類が「スタッフ」のもの。ほかの階の職員と病棟の看護師を含む）をすると、依頼155 は119件のうち113件（95%）でした。

患者の側にも、同じ形の問題がありました。外来の患者390人は全員が同じ順で動き、中待合に中央値40分・最大約2時間座ったきりです。生理検査の待ちは48人とも0分でした。化学療法の患者は受付0分ですぐ点滴に入り、救急の患者は全員が歩いて正面玄関から来ます。大廊下の人が少ないのは、患者が座ったきりで、職員が大廊下を通らなくなったためでした。

#### people_issues_155.md（役割ごとの問題点の洗い出しの全文）

```markdown
# 病院の Unity：役割ごとの人の動きの問題点（依頼155 の記録から洗い出し）

2026-11-12。元の記録は KIOXIA の service_sim/unity/hospital/20261112_flow155/runs/check155a_v06_hall_s0/（people147.csv・staff147.csv・staff_moves147.csv・events.csv）と、サイトの条件 people_flow。
数は記録から数えたもの。「実際と違いそう」は Claude の見立てで、現場の根拠はまだ調べていない。

## 職員に共通（いちばん大きい）
- 5つの役割とも同じ決まりで動く：1人が1時間に約1回、同じ役割の持ち場からくじ引きで行き先を選び、2〜4分いて戻る。科も仕事の中身も関係がない
- ロボットの問題の相手は、走っている間 68件のうち職員が約6割（看護師14・事務13・検査技師11・医師3）。台の前で待っている間 55件はほぼ全部が職員（薬剤師22・検査技師18・看護師7）
- つまり、数えている問題の数の大半が、この仮の動きで決まっている

## 医師（19人・1日165回）
- 外来の診察室の医師が、外来の時間に内視鏡室へ28回・救急へ28回・生理検査へ23回・化学療法へ17回
- 救急の医師が外来の診察室へ12回。化学療法の医師（1人）も持ち場を離れる（施設基準は常時1人以上）
- 診察中の患者がいる間に席を立っているかは、まだ確かめていない

## 看護師（35人・1日311回。ほかに中待合へ呼びに出る386回・付き添い47回）
- 科をまたぐ行き来がほとんど（外来→化学療法、化学療法→内科の診察室、救急→ほかの外来 など）
- 実際にありそうな用事（検体を検査部へ・薬を薬剤部へ取りに行く・器材を取りに行く）が無い。ロボットが代わる仕事そのものが場面にいない
- 看護業務補助者（2人）も看護師と同じ動きで、物を運んでいない

## 薬剤師（20人・1日191回）
- 薬剤部からお薬の窓口へ173回。無菌調製室の4人も1時間に1回、窓口へ出る（36回）
- 化学療法室へ薬の説明に行く動きは無い

## 検査技師（29人・1日236回）
- 臨床検査技師がX線室へ73回（X線室は診療放射線技師の持ち場。役割を1つにまとめたため）
- 放射線技師（2人）がX線室を離れて採血の所へ9回。採血の技師も離れる
- 検体を受け取りに行く動きは無い

## 事務（38人・1日318回）
- 医事・事務の20人が、ほかの外来の中待合へ67回・受付と会計の内側へ65回・正面玄関へ53回
- 総合受付・会計・各科の受付の人が窓口を離れて正面玄関などへ行く

## ほかの階の職員（180人）
- 全員同じ形：エレベーターから来て、どこかの持ち場に2〜3分立ち、戻る。何をしに来たかが無い

## 外来の患者（390人。車いす4人・杖11人）
- 全員が同じ順（総合受付→中待合→診察→会計）。再来の受付機・予約の有無・科による違いが無い
- 中待合に中央値40分・最大約2時間座ったきり。席を立つのはトイレ1回（4割の人）だけ。大廊下の人が少ない原因の1つ
- 生理検査の待合の待ちが48人とも0分。処置・検査室の待ちも0分
- 採血は内科だけ。全員が正面玄関から出入りする

## 付き添い（192人）
- 患者にくっついて同じ動きをするだけ。受付や会計を代わりにする・子どもが歩き回る、といった別の動きが無い

## 化学療法の患者（20人）
- 受付・待合が0分で、すぐ点滴（2〜5時間）。採血・診察・薬の調製を待つ時間が無い
- 付き添いがいない。トイレは4割の人が1回だけ

## 救急の患者（18人）
- 全員が歩いて正面玄関から来る。救急車（ストレッチャー）で救急の入口から入る人がいない
- 待合と処置ベッドの時間が同じ長さ（半分ずつ）。付き添いがいない。X線へ行かない

## 病棟の患者（54人）と付き添いの看護師（54人）
- 車いすが半分。ストレッチャー・ベッドのままの人がいない。必ず看護師が1人付く
- X線室へ行く道が、救急の待合と処置の場所を通り抜ける形。車いすの患者が救急の待合で約11分動けず、別の回では検査の約27分をX線室の外で過ごした
- 1コマごとの人の位置の記録が無く、だれが道をふさいだかが分からない

## 見舞いの人（105人）
- 玄関とエレベーターの間を30秒で通り抜けるだけ。面会の手続きに寄らない
```


## 作業ログ ― 職員141人を、持ち場ごとの21行と4つの型に分ける

### 細かく作り込むのは15人で、110人は持ち場から出ないと決めるだけで足りた

洗い出しを見せたあとの指示は、職員の仮の動きを大きな問題として1つずつ潰していくこと、そのためにまず、どれくらい細かい分類が要るのかを表にすることでした。

> まずは詳細な分類がどれくらい必要なのか整理して表にしてください。

役割（医師・看護師…）ではなく、持ち場と動き方の型で分けました。分ける基準は、ロボットの3つの道（緑＝救急室→検査部、青＝内科の処置室→検査部、赤＝薬剤部→化学療法室）と関わるかどうかです。

| 型 | 中身 | 人数 |
|---|---|---|
| 1 持ち場の中だけ | 部屋から出ない | 110人 |
| 2 決まった相手先と行き来 | 検体を出す・薬を受け取るなど、用事と行き先が決まっている | 15人 |
| 3 患者に付いて動く | 中待合へ呼びに出る・検査へ付き添う（前からある動き） | 14人 |
| 4 フロアを回る・通り抜ける | 案内、ほかの階との行き来 | 2人 |

型2 の15人は、内科の処置室の看護師4人（青の道の積む所）、外来化学療法室の看護師5人（赤の道の届け先）、救急室の看護師4人（緑の道の積む所）、看護業務補助者2人（ロボットと同じ道を歩いて物を運ぶ）です。ロボットの道の両端にいて、ロボットが代わるはずの仕事をしている人たちなので、ここが場面にいないと比べる相手がいません。診療放射線技師は検査技師から切り離し、X線室の中だけにしました。

表は、iCloud の作業フォルダに台帳として置き、直した行から状況の列を書き換えていく形にしています。分け方はそのまま了承され、清掃と警備の人も入れることになりました。

#### staff_classification.md（職員の分け方の台帳の全文。依頼157 の結果を書き込んだ後の版）

```markdown
# 病院の Unity：職員の分け方の表（持ち場 × 動き方の型）

最終更新：2026-11-12（依頼157 で Unity に入った。残りは依頼158 で直している）
この表を、職員の動きを1つずつ直していくときの台帳にする。直したら「状況」の列を書き換える。

- 元の洗い出し：flow155/people_issues_155.md（依頼155 の記録から。職員は全員同じ決まりで動き、その仮の動きがロボットの問題の数の大半を作っていた）
- 型と作り込みの度合いは Claude の見立て。現場の根拠はまだ調べていない

## 動き方の型（4つ）

| 型 | 中身 |
|---|---|
| 1 持ち場の中だけ | 部屋から出ない |
| 2 決まった相手先と行き来 | 検体を出す・薬を受け取るなど、用事と行き先が決まっている |
| 3 患者に付いて動く | 中待合へ呼びに出る・検査へ付き添う（今ある動き） |
| 4 フロアを回る・通り抜ける | 案内、ほかの階との行き来 |

## 分け方の表（職員141人＋ほかの階の職員）

| 番号 | 役割 | 持ち場 | 人数 | 型 | ロボットの道との関わり | 作り込み | 状況 |
|---|---|---|---|---|---|---|---|
| 1 | 医師 | 外来の診察室 | 13 | 1 | ほぼ無い | 低 | 依頼157 で入った |
| 2 | 医師 | 内視鏡・化学療法・生理検査 | 4 | 1 | ほぼ無い | 低 | 依頼157 で入った |
| 3 | 医師 | 救急室 | 2 | 1 | 緑の道の積む所の部屋 | 中 | 依頼157 で入った |
| 4 | 看護師 | 外来の中待合・診察室 | 14 | 3 | 中待合まで。道には出ない | 今のまま | － |
| 5 | 看護師 | 外来の処置・検査室、内視鏡・回復室 | 6 | 1 | ほぼ無い | 低 | 依頼157 で入った |
| 6 | 看護師 | 内科の処置室 | 4 | 2 | 青の道の積む所。検体を出す人 | 高 | 依頼157 で入った |
| 7 | 看護師 | 外来化学療法室 | 5 | 2 | 赤の道の届け先。薬を受け取る人 | 高 | 依頼157 で入った。受け取る時にロボットがもういない → 依頼158 |
| 8 | 看護師 | 救急室 | 4 | 2 | 緑の道の積む所。検体を出す人 | 高 | 依頼157 で入った |
| 9 | 看護業務補助者 | 内科の処置室・救急室 | 2 | 2 | ロボットと同じ道を歩いて物を運ぶ | 高 | 依頼157 で入った（種0 は運ぶ回が0。種8 で2回を確かめた） |
| 10 | 薬剤師 | 薬剤部（調剤） | 14 | 1 | 赤の道の積む所。払い出し台に立つ | 中 | 依頼157 で入った |
| 11 | 薬剤師 | 無菌調製室 | 4 | 1 | 無い | 低 | 依頼157 で入った |
| 12 | 薬剤師 | お薬の窓口の内側 | 2 | 1 | 無い | 低 | 依頼157 で入った |
| 13 | 臨床検査技師 | 中央検査室 | 15 | 1 | 緑と青の届け先。検体受付の台に立つ | 中 | 依頼157 で入った。受け取る時にロボットがもういない → 依頼158 |
| 14 | 臨床検査技師 | 生理検査の検査室 | 8 | 1 | ほぼ無い | 低 | 依頼157 で入った |
| 15 | 臨床検査技師 | 内科の処置室（採血） | 4 | 1 | 青の道の積む所の部屋 | 中 | 依頼157 で入った |
| 16 | 診療放射線技師 | X線室 | 2 | 1 | 救急室の中 | 中（検査技師から切り離す） | 依頼157 で入った |
| 17 | 事務 | 総合受付・会計・各科の受付 | 16 | 1 | 無い | 低 | 依頼157 で入った |
| 18 | 事務 | 医事・事務 | 20 | 1 | 職員の中廊下にたまに出る | 中 | 依頼157 で入った |
| 19 | 事務 | 正面玄関の案内 | 2 | 4 | 外来の大廊下 | 中 | 依頼157 で入った |
| 20 | ほかの階の職員 | 1日180人が来る | － | 2と4 | 大廊下と職員の廊下を必ず通る | 高（運ぶ人・通り抜ける人・用事で来る医師に分ける） | 依頼157 で入った。通り抜ける人 90人のうち64人が出ていない → 依頼158 |
| 21 | 今いない人 | 清掃・警備・搬送の係 | － | 4 | 廊下 | 中（入れると決定 2026-11-12） | 依頼157 で入った（清掃・警備とも問題の相手は0件） |

## 人数のまとめ

- 型1（持ち場の中だけ）：110人。くじ引きの行き来をやめて部屋の中に置く
- 型2（用事つきの行き来）：15人（番号6〜9）。ここを作り込む
- 型3（患者に付いて動く）：14人。今のまま
- 型4（フロアを回る）：2人

## 用事の表（2026-11-12 了承。サイトの条件 people_flow.staff_moves・elevator_traffic・cleaning_security に入れた。p2m-site cf58824）

頻度は新しく決めず、できるだけ試算の依頼の数（サイトの前提の表）につなぐ。

| 番号 | だれ | 用事 | どこへ | 頻度 | 根拠 |
|---|---|---|---|---|---|
| 6 | 内科の処置室の看護師 | 検体をロボットに積む | 処置室の中の台（部屋から出ない） | 青の便ごと | 試算の便。慈恵柏では搬送を補助者へ電話で頼んでいた |
| 7 | 化学療法の看護師 | 届いた薬を受け取る | 受付の台（部屋から出ない） | 赤の便ごと | 試算の便 |
| 8 | 救急室の看護師 | 検体をロボットに積む | 救急室の中の台（部屋から出ない） | 緑の便ごと | 試算の便 |
| 9 | 看護業務補助者 | ロボットが運ばない分を歩いて運ぶ | 3つの道を歩く（処置室→検査部、救急室→検査部、薬剤部→化学療法室） | 試算で人が運ぶと決まった依頼ごと（至急でロボットがいない時・運行の時間帯の外） | 試算の決まり。慈恵柏では看護師・看護補助者が運び、薬剤部→化学療法は補助員 |
| 20a | ほかの階の職員：運ぶ人 | 病棟の検体を検査部へ出す・薬剤部へ薬を取りに来る | エレベーター⇔中央検査室・薬剤部 | 1時間20人のうちの割合（仮置き 3割） | 割合の根拠なし |
| 20b | ほかの階の職員：通り抜ける人 | 出勤・昼・帰り・ほかの棟へ | エレベーター⇔正面玄関 | 同（仮置き 5割） | 割合の根拠なし |
| 20c | ほかの階の職員：用事で来る医師 | 救急・内視鏡・検査へ呼ばれて来る | エレベーター⇔救急室・内視鏡室・生理検査 | 同（仮置き 2割） | 割合の根拠なし |
| 21a | 清掃の人（仮置き 2人） | 外来の廊下・待合を外来の前に清掃。日中はトイレの見回りとごみ集め | 7:30〜8:00 は大廊下と待合（カートを押す）。日中はトイレ3か所 | 廊下・待合 1日1回（8:00 までに終える）。トイレ 1日3回（仮置き） | 加古川中央市民病院（600床）の清掃の仕様書：外来と通路は8:00 までに完了・廊下1回/日・共用トイレ3〜8回/日（表が崩れていて回数は確かでない） |
| 21b | 警備の人（仮置き 2人） | 正面玄関に立つ・院内を見回る | 1人は正面玄関、1人は大廊下を端から端まで | 立つのは 8:00〜16:00。見回りは1時間に1回（仮置き） | 加古川中央市民病院の警備の仕様書（立つ人は8〜11時が最多。院内の見回りの回数は書かれていない）。1時間に1回は市川市急病診療所の仕様書 |

型1（番号1〜3・5・10〜19）は、くじ引きの行き来をやめて部屋の中に置く。中の行は次の1つを足す。
- 3 救急の医師：救急室の中だけ
- 10 薬剤部：赤の便ごとに1人が払い出し台でロボットに積む
- 13 中央検査室：緑・青の便ごとに1人が検体受付の台で受け取る
- 15 採血の技師：処置室の中だけ
- 16 診療放射線技師：X線室の中だけ（役割を検査技師から切り離す）
- 18 医事・事務：部屋の中。廊下に出る用事は入れない（根拠がないため）
- 19 正面玄関の案内：玄関と総合受付の間を歩く

### 根拠にした資料
- 慈恵医大柏病院の搬送ロボット導入の発表（DFA Robotics）https://prtimes.jp/main/html/rd/p/000000111.000028572.html
- 加古川中央市民病院 清掃業務委託仕様書 https://www.kakohp.jp/wp-content/uploads/02_76_setumeisyo.pdf
- 加古川中央市民病院 警備業務仕様書 https://www.kakohp.jp/wp-content/uploads/03_jigyosya_193_ojfs851vglk_siyousyo3.pdf
- 市川市急病診療所 警備業務仕様書 https://www.city.ichikawa.lg.jp/common/pub01/file/0000485676.pdf
- 見つからなかったもの：外来の看護師・看護補助者が1日に何回運ぶかの公開の数字（厚労科研の看護業務効率化の調査にも回数は無い）

## 決めたこと

- 2026-11-12：この分け方でよい。清掃・警備の人も入れる（エイイチ）
- 2026-11-12：用事の表と仮置き（ほかの階の職員 3：5：2、清掃2人・警備2人、トイレの清掃 1日3回、見回り 1時間に1回）でよい（エイイチ）

## 分かったこと

- 2026-11-12：ロボット1台の日に人（看護業務補助者）が歩いて運ぶ回は、試算では種10個で 0・0・0・1・1・0・0・0・2・0 回。Unity で撮る種0 は 0 回なので、補助者は廊下を歩かない。人が運ぶ様子を見るには、ロボット0台の日を別に回す必要がある（まだ決めていない）

## 依頼157 の結果（2026-11-12）

- 走っている間の問題の数：68件 → 19件（廊下だけ）。台の前で待っている間のひやり 47件 → 12件
- 型1 の13の番号とも、持ち場の外にいた時間は0秒。用事の回数は便の数と全部合った
- 走っている間に職員141人が相手だったのは2件だけ
- 残ったこと：届け先でロボットが待たない／大廊下の人数 1.4人 → 0.9人／通り抜ける人64人が出ない／60秒以上動けなかった人6件
- 決めたこと（エイイチ）：正面玄関を職員も通れるようにする。立って待つ点を通り道から外し、車いす・杖の人が来たら立っている人が半歩よける

## 進め方

依頼158（患者の動き・呼ぶ場面と積む受け取るの見せ方・上の残ったことの直し）の報告を見て、状況の列を書き換える。
```

### 用事の頻度は新しく決めず、試算の便と人が運ぶ回につないだ

型2 の人が、どこへ・何をしに・どのくらいの頻度で行くかを公開の資料で調べました。外来の看護師や補助者が1日に何回運ぶか、という数字は見つかりませんでした（厚生労働科学研究の看護業務効率化の調査にも、回数は載っていません）。そこで頻度は新しく決めず、試算が作る依頼と便にそのままつなぎました。積む看護師は便ごとに台へ行き、受け取る看護師は便が着くたびに台へ行きます。廊下を歩いて運ぶのは看護業務補助者で、試算の決まり（至急の依頼が出たとき、その出発地に空いているロボットがいなければ人が運ぶ）で人が運ぶと決まった回だけ歩きます。

| 調べたこと | 分かったこと | 元 |
|---|---|---|
| ロボットを入れる前は、だれが運んでいたか | 看護師と看護補助者。看護師は補助者に電話で頼んでいた。薬剤部から外来化学療法室は補助員 | [慈恵医大柏病院の搬送ロボット導入の発表（DFA Robotics）](https://prtimes.jp/main/html/rd/p/000000111.000028572.html) |
| 病院の清掃はいつするか | 外来と通路は、外来の受付が始まる8:00 までに終える。廊下は1日1回、共用トイレは1日3〜8回（表が崩れていて回数は確かでない） | [加古川中央市民病院（600床）の清掃業務委託仕様書](https://www.kakohp.jp/wp-content/uploads/02_76_setumeisyo.pdf) |
| 病院の警備の人はどこにいるか | 立つ人は8〜11時が最多。院内の見回りの回数は書かれていない | [加古川中央市民病院の警備業務仕様書](https://www.kakohp.jp/wp-content/uploads/03_jigyosya_193_ojfs851vglk_siyousyo3.pdf) |
| 見回りの間隔 | 診療時間の前後と診療時間内は1時間おき | [市川市急病診療所の警備業務仕様書](https://www.city.ichikawa.lg.jp/common/pub01/file/0000485676.pdf) |
| 看護師・補助者が1日に何回運ぶか | 回数は見つからなかった | [看護業務効率化の調査（厚生労働科学研究）](https://mhlw-grants.niph.go.jp/system/files/report_pdf/202421031A-buntan1.pdf) |

清掃の人は、7:30〜8:00 にカートを押して外来の大廊下と待合を回ります。ロボットの緑の便（7:30〜8:00）と同じ時間です。根拠のない仮置きは4つあり（ほかの階の職員を運ぶ人3・通り抜ける人5・用事で来る医師2に分ける割合、清掃2人・警備2人、トイレの清掃1日3回、見回り1時間に1回）、どれも仮置きと断ったうえで了承されました。

試算に人が運ぶ回を記録させて書き出すと、ロボット1台の日に人が歩いて運ぶ回は、種10個で 0・0・0・1・1・0・0・0・2・0 回でした。Unity で撮る種0 は0回なので、撮る回では補助者は廊下を歩きません。人が運ぶ様子を見るには、ロボット0台の日を別に回す必要があります（まだ決めていません）。

#### diff_cf58824.txt（p2m-site の commit cf58824 の差分。職員の動き方の表・ほかの階の職員の3つの分け・清掃と警備の人・人が運ぶ回の記録。書き出したファイルは除く）

```diff
commit cf58824 病院：職員の動き方を持ち場ごとの型と用事の表にした・ほかの階の職員を3つに分けた・清掃と警備の人を足した（依頼157 の前）

diff --git a/tools/hospital_sim/README.md b/tools/hospital_sim/README.md
index ec540a5..7c26407 100644
--- a/tools/hospital_sim/README.md
+++ b/tools/hospital_sim/README.md
@@ -70,3 +70,11 @@ Unity 依頼134 で、外来の混む時間は裏口の道で廊下の問題が
 
 エイイチの指摘（搬送ロボットは部屋の中にも入っていく前提）で、フロアの形を h1（`../hospital_layouts/hospital_h1.json`）に替えた。積む所・届け先は扉の前ではなく、部屋の中の台の前になり、道は部屋の中の分だけ延びる（緑 21→29m・青 86→100m・青の裏口 153→177m・赤 109→119m）。人が歩いて運ぶときも同じ台から台まで歩く。h1 は裏口の道（blue_back）も同じファイルに持つので、h0b は使わない。
 `export_unity_params.py` は、4つの道（`routes_all`）と、1台が全部の道を回すときの便の時刻表（`day_schedule.trips_all`）も書き出す。
+
+## 職員の動き方を持ち場ごとの型にした（2026-11-12）
+
+依頼155 の記録で、職員が全員同じ決まり（1人が1時間に1回、同じ役割の持ち場からくじ引きで行き先を選ぶ）で科をまたいで動き、ロボットの問題の相手の約6割が職員だった。エイイチと決めて、`people_flow.staff_moves` を持ち場ごとの型（1 持ち場の中だけ／2 決まった相手先と行き来／3 患者に付いて動く／4 フロアを回る）と用事の表に替えた。型2 の頻度は新しく決めず、試算の便と人が運ぶ回につなぐ。
+- `hospital_sim.py` は人が歩いて運んだ回を `walk_log` に記録する（記録だけで、結果は変わらない）。`export_unity_params.py` はロボット1台のときの時刻表を `day_schedule.staff_walks_all` に書き出す
+- `people_flow.elevator_traffic` のほかの階の職員を、運ぶ人・通り抜ける人・用事で来る医師に分けた（3：5：2。仮置き）
+- `people_flow.cleaning_security` を足した（清掃の人2人・警備の人2人。仮置き）
+- 分け方と用事の台帳は iCloud の `hospital/staff_classification.md`
diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json
index c95627c..03cfe4e 100644
--- a/tools/hospital_sim/assumptions.json
+++ b/tools/hospital_sim/assumptions.json
@@ -1052,23 +1052,169 @@
     "basis": "仮置き",
     "source": "hospital_staff（病院全体）× 日中にいる割合 0.75 のうち、この階の仕事の分を持ち場に割り当てた。医師は診察室1つに1人と、救急・内視鏡・化学療法・生理検査。看護師は医療法の外来の標準（外来患者30人に1人。この階の外来・化学療法・救急で約430人→15人以上）を下回らないように持ち場に置いた（33人。病院全体の日中約500人の約7%）。薬剤師は薬剤部が病院全体の調剤をするので多く置いた（日中約36人のうち、病棟に出ている分を除いた20人。医療法の外来の処方せん75枚に1人も満たす）。臨床検査技師は日中約43人のうち、病理・細菌など別の階を除いた27人。事務職員は日中約115人のうち、受付・会計・医事の38人。外来化学療法は施設基準『専任の医師・看護師または薬剤師が常時1人以上』を満たす",
     "n": null,
-    "updated": "2026-11-10",
+    "updated": "2026-11-12",
     "range": [
      0.7,
      1.3
     ],
-    "note": "合計 141人。役割の当てはめ：看護業務補助者は看護師、診療放射線技師は検査技師、事務職員は事務の access を使う"
+    "note": "合計 141人。役割の当てはめ：看護業務補助者は看護師、診療放射線技師は検査技師、事務職員は事務の access を使う。2026-11-12：動き方は持ち場ごとに staff_moves の型で決める。診療放射線技師は、入れる所は検査技師の access を使うが、動き方は別（X線室の中だけ）"
    },
    "staff_moves": {
     "value": {
-     "持ち場の中": "いつも",
-     "職員の廊下を通る（1人あたり）": "1時間に1回",
-     "中待合へ患者を呼びに出る（看護師）": "診察1回ごと",
-     "ふだんの行き先": "持ち場の所だけ。付き添い・通り抜けのために『入る』にした所（化学療法・生理検査・救急の処置の場所・X線室など）へは、ふだんの行き来では行かない"
+     "型": {
+      "1": "持ち場の中だけ（部屋から出ない）",
+      "2": "決まった相手先と行き来（用事と行き先が決まっている）",
+      "3": "患者に付いて動く（中待合へ呼びに出る・検査へ付き添う。依頼154 までの動きのまま）",
+      "4": "フロアを回る・通り抜ける"
+     },
+     "持ち場ごと": [
+      {
+       "no": 1,
+       "role": "医師",
+       "post": "内科の診察室・ほかの外来の診察室",
+       "n": 13,
+       "type": 1
+      },
+      {
+       "no": 2,
+       "role": "医師",
+       "post": "内視鏡室・外来化学療法室・生理検査の検査室",
+       "n": 4,
+       "type": 1
+      },
+      {
+       "no": 3,
+       "role": "医師",
+       "post": "救急室",
+       "n": 2,
+       "type": 1
+      },
+      {
+       "no": 4,
+       "role": "看護師",
+       "post": "内科（中待合・診察室）・ほかの外来（中待合・診察室）",
+       "n": 14,
+       "type": 3,
+       "errand": "診察1回ごとに中待合へ患者を呼びに出る。処置・検査室、内視鏡室へ付き添う（案A）"
+      },
+      {
+       "no": 5,
+       "role": "看護師",
+       "post": "ほかの外来の処置・検査室、内視鏡室・回復室",
+       "n": 6,
+       "type": 1
+      },
+      {
+       "no": 6,
+       "role": "看護師",
+       "post": "内科の処置室",
+       "n": 4,
+       "type": 2,
+       "errand": "青の便ごとに1人が処置室の中の台でロボットに積む（load_s）。部屋から出ない"
+      },
+      {
+       "no": 7,
+       "role": "看護師",
+       "post": "外来化学療法室",
+       "n": 5,
+       "type": 2,
+       "errand": "赤の便が着くたびに1人が受付の台で受け取る（pickup_wait_s のあと unload_s）。部屋から出ない"
+      },
+      {
+       "no": 8,
+       "role": "看護師",
+       "post": "救急室",
+       "n": 4,
+       "type": 2,
+       "errand": "緑の便ごとに1人が救急室の中の台でロボットに積む（load_s）。部屋から出ない"
+      },
+      {
+       "no": 9,
+       "role": "看護業務補助者",
+       "post": "内科の処置室・器材室、救急室",
+       "n": 2,
+       "type": 2,
+       "errand": "ロボットが運ばない依頼を歩いて運ぶ。時刻と道は staff_walks_all（試算の決まり：至急の依頼が出たとき、その出発地に空いているロボットがいなければ人が運ぶ）。積む所で受け取り、届け先で渡し（staff_handoff_s）、持ち場へ戻る。薬剤部と中央検査室には入らず、払い出し口・検体受付の扉の所で受け渡す。2人のうち手の空いている方が行く"
+      },
+      {
+       "no": 10,
+       "role": "薬剤師",
+       "post": "薬剤部",
+       "n": 14,
+       "type": 1,
+       "errand": "赤の便ごとに1人が払い出し台でロボットに積む（load_s）。人が運ぶ回は払い出し口で渡す"
+      },
+      {
+       "no": 11,
+       "role": "薬剤師",
+       "post": "薬剤部の無菌調製室",
+       "n": 4,
+       "type": 1
+      },
+      {
+       "no": 12,
+       "role": "薬剤師",
+       "post": "お薬の窓口の内側",
+       "n": 2,
+       "type": 1
+      },
+      {
+       "no": 13,
+       "role": "臨床検査技師",
+       "post": "中央検査室",
+       "n": 15,
+       "type": 1,
+       "errand": "緑・青の便が着くたびに1人が検体受付の台で受け取る（pickup_wait_s のあと unload_s）。人が運ぶ回は検体受付で受け取る"
+      },
+      {
+       "no": 14,
+       "role": "臨床検査技師",
+       "post": "生理検査の検査室",
+       "n": 8,
+       "type": 1
+      },
+      {
+       "no": 15,
+       "role": "臨床検査技師",
+       "post": "内科の処置室（採血）",
+       "n": 4,
+       "type": 1
+      },
+      {
+       "no": 16,
+       "role": "診療放射線技師",
+       "post": "X線室",
+       "n": 2,
+       "type": 1
+      },
+      {
+       "no": 17,
+       "role": "事務職員",
+       "post": "総合受付・会計・各科の受付",
+       "n": 16,
+       "type": 1
+      },
+      {
+       "no": 18,
+       "role": "事務職員",
+       "post": "医事・事務",
+       "n": 20,
+       "type": 1
+      },
+      {
+       "no": 19,
+       "role": "事務職員",
+       "post": "正面玄関の案内",
+       "n": 2,
+       "type": 4,
+       "errand": "正面玄関と総合受付の間を歩く（1人あたり1時間に2回・仮置き）。ふだんは正面玄関に立つ"
+      }
+     ],
+     "やめたこと": "依頼147〜155 の『持ち場から動く』（1人が1時間に1回、同じ役割の持ち場からくじ引きで行き先を選ぶ）は全部やめる"
     },
-    "what": "職員が持ち場から動く頻度と、ふだんの行き先",
+    "what": "職員の動き方：持ち場ごとの型と用事",
     "basis": "仮置き",
-    "source": "根拠なし。職員の廊下の人の数は、これと依頼134 の職員通路の間隔（平均60秒）が近くなるか見て確かめる",
+    "source": "2026-11-12 エイイチ了承（分け方の表と用事の表。台帳は iCloud の hospital/staff_classification.md）。依頼155 の記録で、職員が全員同じ決まり（1時間に1回・くじ引き）で科をまたいで動き、ロボットの問題の相手の約6割が職員だったため。型2 の頻度は新しく決めず、試算の便と人が運ぶ回につないだ。慈恵医大柏病院の発表（DFA Robotics。https://prtimes.jp/main/html/rd/p/000000111.000028572.html）：導入前は看護師・看護補助者が運び、看護師は補助者に電話で頼んでいた。薬剤部→外来化学療法室は補助員。外来の看護師・補助者が1日に何回運ぶかの公開の数字は見つからなかった",
     "n": null,
     "updated": "2026-11-12"
    },
@@ -1150,19 +1296,56 @@
       "per_hour": 30
      },
      "ほかの階の職員（エレベーター⇔職員の持ち場。大廊下を通る）": {
-      "per_hour": 20
+      "per_hour": 20,
+      "split": {
+       "運ぶ人": {
+        "share": 0.3,
+        "what": "病棟の検体を検査部へ出す・薬剤部へ薬を取りに来る。エレベーター⇔検査部の検体受付／薬剤部の払い出し口（半々）。部屋には入らず扉の所で受け渡す（1〜2分）"
+       },
+       "通り抜ける人": {
+        "share": 0.5,
+        "what": "出勤・昼・帰り・ほかの棟へ。エレベーター⇔正面玄関（大廊下を通る）"
+       },
+       "用事で来る医師": {
+        "share": 0.2,
+        "what": "救急・内視鏡・検査へ呼ばれて来る。エレベーター⇔救急の処置の場所／内視鏡室／生理検査の検査室。5〜15分いて戻る"
+       }
+      }
      }
     },
     "what": "エレベーターからこの階を通る人（1時間あたり。日中）",
     "basis": "仮置き",
-    "source": "根拠なし。ほかの階との行き来がなく、大廊下を通る人がいなかったため足した。面会の時間帯は多くの病院の『13時から』に合わせた",
+    "source": "根拠なし。ほかの階との行き来がなく、大廊下を通る人がいなかったため足した。面会の時間帯は多くの病院の『13時から』に合わせた。2026-11-12：ほかの階の職員を3つに分けた（割合 3：5：2 は根拠なしの仮置き。エイイチ了承）。依頼155 までは全員が持ち場に2〜3分立って戻るだけだった",
     "n": null,
-    "updated": "2026-11-11",
+    "updated": "2026-11-12",
     "range": [
      0.5,
      1.5
     ]
    },
+   "cleaning_security": {
+    "value": {
+     "清掃の人": {
+      "n": 2,
+      "what": "7:30〜8:00 に外来の大廊下と待合を清掃する（清掃のカートを押して歩く。人が歩く速さの半分）。8:00 までに終える。日中はトイレ3か所（西・東・化学療法）の見回りとごみ集めを1日3回（10:00・13:00・15:30 ごろ。1か所5〜10分）。それ以外は場面にいない",
+      "access": "外来の患者と化学療法の患者の入れる所に入れる（座らない）",
+      "cart_m": {
+       "w": 0.6,
+       "d": 1.0
+      }
+     },
+     "警備の人": {
+      "n": 2,
+      "what": "1人は 8:00〜16:00 に正面玄関に立つ。もう1人は1時間に1回、外来の大廊下を端から端まで歩いて見回り、玄関へ戻る",
+      "access": "外来の患者の入れる所に入れる（座らない）"
+     }
+    },
+    "what": "清掃の人・警備の人（職員141人とは別）",
+    "basis": "仮置き",
+    "source": "2026-11-12 エイイチ：清掃や警備の人も入れる。加古川中央市民病院（600床）の清掃業務委託仕様書（https://www.kakohp.jp/wp-content/uploads/02_76_setumeisyo.pdf）：外来部門と通路は外来の受付が始まる 8:00 までに清掃を終える・外来の廊下 1回/日・共用トイレ 3〜8回/日（表が崩れていて回数は確かでない）・清掃用カートを使う。同病院の警備業務仕様書（https://www.kakohp.jp/wp-content/uploads/03_jigyosya_193_ojfs851vglk_siyousyo3.pdf）：立つ人は 8〜11時が最多、院内の見回りの回数は書かれていない。見回り1時間に1回は市川市急病診療所の警備業務仕様書（https://www.city.ichikawa.lg.jp/common/pub01/file/0000485676.pdf）。人数（2人ずつ）・トイレ1日3回・カートの大きさは根拠なし",
+    "n": null,
+    "updated": "2026-11-12"
+   },
    "unity_only_147": {
     "value": "依頼147 で Unity が決めた値（開いた上の端は下の端の2倍、救急の滞在の分け方、化学療法の患者の行き先の順、職員の持ち場の当て方、職員が動く間とどまる時間）",
     "what": "Unity だけの値",
diff --git a/tools/hospital_sim/export_unity_params.py b/tools/hospital_sim/export_unity_params.py
index 252248a..50ba11e 100644
--- a/tools/hospital_sim/export_unity_params.py
+++ b/tools/hospital_sim/export_unity_params.py
@@ -30,8 +30,13 @@ def day_schedule(A):
                 out["plans"][plan][str(sp)].append([{"depart": t["depart_s"], "from": t["from"]} for t in d.trip_log if t["route"] == "blue"])
                 out.setdefault("trips_all", {}).setdefault(plan, {}).setdefault(str(sp), []).append(
                     [{"route": t["route"], "depart": t["depart_s"], "from": t["from"]} for t in d.trip_log])
+                out.setdefault("staff_walks_all", {}).setdefault(plan, {}).setdefault(str(sp), []).append(
+                    [{"route": t["route"], "depart": t["depart_s"], "from": t["from"], "to": t["to"]} for t in d.walk_log])
     out["trips_all_what"] = ("1台のロボットが緑・青・赤の全部を回すときの便の時刻表（h3 から）。plan × 速さ × 種。"
                              "route は green/blue/red、from は積む所。道は routes_all を使う")
+    out["staff_walks_all_what"] = ("ロボット1台のとき、人（看護業務補助者）が歩いて運ぶ回の時刻表（試算の決まり：至急の依頼が出たとき、"
+                                   "その出発地に空いているロボットがいなければ人が運ぶ）。plan × 速さ × 種。depart は 7:30 からの秒。"
+                                   "from で受け取り、to へ歩いて渡し、持ち場へ戻る。2026-11-12 職員の用事の表（people_flow.staff_moves）で使う")
     return out
 
 
diff --git a/tools/hospital_sim/hospital_sim.py b/tools/hospital_sim/hospital_sim.py
index 7f35061..c1b8789 100644
--- a/tools/hospital_sim/hospital_sim.py
+++ b/tools/hospital_sim/hospital_sim.py
@@ -126,6 +126,7 @@ class Day:
             self.L = json.loads((HERE / "../hospital_layouts/hospital_h0b.json").read_text(encoding="utf-8"))
         self.back_hours = [(hm(a) - self.day0, hm(b) - self.day0) for a, b in self.r.get("back_door_hours", [])]
         self.trip_log = []  # ロボットの便（Unity に渡す時刻表）
+        self.walk_log = []  # 人が歩いて運んだ回（Unity に渡す時刻表。記録だけで、結果は変えない）
 
     def robot_from(self, k, t):
         """ロボットが積む所。青だけ、決め方により裏口になる。人が歩くときはいつも表（routes の from_point）"""
@@ -169,6 +170,8 @@ class Day:
         d = self.route_dist(k)
         v = self.c["staff_speed"]
         extra = self.c["staff_extra_s"]
+        self.walk_log.append({"route": k, "depart_s": round(self.env.now, 1), "from": self.routes[k]["from_point"],
+                              "to": self.routes[k]["to_point"], "items": len(items)})
         yield self.env.timeout(d / v + extra + self.c["staff_handoff_s"])
         for q in items:
             self.finish(q, "staff")
```


## 作業ログ ― 職員の動きを替えて、病院の1日を撮り直す（依頼157）

### 依頼157 の依頼文と、確かめてもらったこと

依頼157 では、くじ引きの行き来を全部やめ、19行の表のとおりに職員を動かしてもらいました。確かめは、型1 の職員が持ち場の外にいた秒が0か、用事の回数が便の数と合うか、問題の相手がだれか、大廊下の人数、そして歩いている途中で60秒以上動けなかった人のまわりにだれがいたか、です。最後の1つは、依頼155 で車いすの患者が止まったとき、だれが道をふさいだのかが記録から分からなかったために足しました。

#### request157.md（依頼157 の依頼文の全文）

```markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 480
---
# 依頼157：病院の職員の動き方を持ち場ごとの型に替え、清掃と警備の人を足して、1日を撮り直す

依頼155 の報告（claude_code_reports/20261112_hospital_155.txt）の「決めてほしいこと」に、エイイチと決めた答え（2026-11-12）：
1 「持ち場の所だけ」の読み方：**役割で分ける形そのものをやめる**。依頼155 の記録を数えると、職員は5つの役割とも同じ決まり（1人が1時間に1回、同じ役割の持ち場からくじ引き）で科をまたいで動き、ロボットの問題の相手の約6割が職員だった。配膳と違い、病院は人によって動きがかなり違う。**持ち場ごとに動き方の型と用事を決めた表**（サイトの people_flow.staff_moves）に替える
2 車いすの患者が救急室のまわりで長く止まった：**直す**。ただし原因がまだ分からないので、今回は 1 で救急室のまわりの仮の行き来が消えたあとにどうなるかを見て、**だれが道をふさいだかを記録に出す**（下の 2 の (e)）
3 大廊下の人数が目安を下回った：**直す**。人数を足すのではなく、ほかの階の職員を3つに分け、清掃と警備の人を足す（どちらも大廊下を通る）。それでどうなるかを見る

**今回は職員の動き方を替えて、確かめの回を撮って見せるところまで。** 患者・付き添い・見舞いの人の動き、数える問題、ロボットの止まり方、人がロボットをよける決まりは変えない。
**配膳の場面・配膳の実行ファイル・配膳の台帳、配膳と共通の部品には触らない。** 変えるのは Assets/ServiceSim/Hospital/ の中だけ。見た目は依頼153 の色・決めたカメラのまま。
**瞬間移動はさせない**（エレベーターの中で現れ・消えるのはよい。清掃・警備の人は正面玄関から出入りする）。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**

## 正（読むもの）
- p2m-site main（cf58824）
  - フロアの形：`tools/hospital_layouts/hospital_h1.json`（md5 76084c213ce03712abcdd6fa1d143489。依頼155 と同じ）
  - 条件：`tools/hospital_sim/hospital-unity-params.json`（md5 77e8385a63b952c5b6e0fab94e94c8ef）。前の写し（415ee6bc）との違いは次だけのはず：
    people_flow.staff_moves（中身を全部入れ替え）／people_flow.elevator_traffic のほかの階の職員（split を足した）と source／people_flow.cleaning_security（新しい）／
    day_schedule.staff_walks_all と staff_walks_all_what（新しい）。day_schedule.trips_all は同じ

## 始める前に確かめること（違えば回さずに報告して終わる）
作業場所の保留 0（cs:125 のあと）・Unity と回し係が動いていない・KIOXIA がマウント済み・上の md5 と違いの中身

## 1. 作る（中身は params の people_flow を読む。ここは要点だけ）
- **依頼147〜155 の「持ち場から動く」（1時間に1回のくじ引き）を全部やめる**
- staff_moves の「持ち場ごと」の 19 行のとおりに動かす
  - 型1（番号 1〜3・5・10〜18）：持ち場の所から出ない。errand のある行（10 薬剤部・13 中央検査室）は、便ごとに1人が台へ行って積む・受け取る
  - 型2（番号 6〜8）：便ごとに1人が部屋の中の台で積む・受け取る。部屋から出ない
  - 型2（番号 9 看護業務補助者）：day_schedule.staff_walks_all の時刻に、その道を歩いて運び、持ち場へ戻る（その回の plan・速さ・種の表を使う。0 回の種もある）。薬剤部・中央検査室には入らず、扉の所で受け渡す
  - 型3（番号 4）：依頼154 までの動きのまま（中待合へ呼びに出る・付き添い）
  - 型4（番号 19 正面玄関の案内）：errand のとおり
  - 診療放射線技師は、入れる所は検査技師の access のまま、動き方は番号 16（X線室の中だけ）
- elevator_traffic のほかの階の職員を split の3つ（運ぶ人・通り抜ける人・用事で来る医師）に分ける。1時間の人数（20）は変えない
- cleaning_security の清掃の人2人・警備の人2人を足す。清掃のカートは押して歩く物として建てる（ロボットから見ると人と同じ相手。相手の種類は「清掃のカート」と分かるように記録する）
- 病棟の患者と付き添いの看護師、案A の付き添いは依頼155 のまま
- 記録に足すもの
  - 職員ごとに、持ち場の所の外にいた秒（番号ごとに合計）と、用事の回数
  - ロボットの問題の相手：役割・持ち場の番号（1〜19・ほかの階の職員の3つ・清掃・警備・患者の種類）と、そのとき何をしていたか
  - **人が歩いている途中で 60 秒以上動けなかったとき**：その人・場所・時刻と、その間まわり 2 m 以内にいた人と物（役割・番号・止まっていたか動いていたか）を1件ずつ
- サイトに書いていなくて Unity で決めた値は summary の unity_only157 に書き、報告の「決めてほしいこと」に並べる
- check-in（保留0）して、Builds/hospital157/ を作る。前の実行ファイルは残す

## 2. 確かめ（違えば 3 は撮らずに止める）
- 依頼155 と同じ確かめ（廊下だけ×2 で1バイト一致、瞬間移動0、便16/16、立ち往生、ロボット・人が入れない所0秒（役割ごと）、時間で切替×1、飛ばした行き先・出さなかった人）
- (a) 型1 の職員が持ち場の所の外にいた秒が、番号ごとに 0 秒であること（台へ行く用事は持ち場の所の中）
- (b) 用事の回数：番号 6・7・8・10・13 は便の数と合うこと。番号 9 は staff_walks_all の回数と合うこと
- (c) 問題の数を依頼143・147・149・154・155 と並べる（区間ごと・台の前で待っている間も）。相手を番号ごとに出す。依頼155 は相手の約6割が職員だった。それがどう変わったか
- (d) 時刻ごと（30分ごと）の所ごとの人の数（依頼155 の表と同じ形）。外来の大廊下 x0〜70・x70〜120・職員の廊下を、依頼155 と flow_estimate（山場 2〜8・午後 1〜3）と並べる。7:30〜8:00 の清掃の間の大廊下の人数と、その間の緑の便の問題の数も
- (e) 60 秒以上動けなかった人の一覧（だれが・どこで・何秒・まわりにいた人と物）。依頼155 で止まった病棟の患者（車いす・X線室の行き帰り）が今回どうなったか

## 3. 撮る（依頼155 と同じ）
- 静止画：依頼155 と同じ17枚に、寄り：7:40 ごろの外来の大廊下（清掃の人とカート）と、補助者が歩いて運んでいる所（あれば）を足す
- 動画：廊下だけ・0.6m/秒・種0 の1日の早回し（依頼155 と同じ作り）
- 並べた図
- 出力：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_staff157/。並べた図・静止画・動画は iCloud の …/サービスロボット導入シミュレーション/hospital/staff157/ にも写し、md5 を確かめる

## 報告
claude_code_reports/20261112_hospital_157.txt に：始める前の確かめ、1 で作ったもの、2 の確かめ（表）、3 のカメラの値と動画の長さ、出力の場所、check-in の番号、決めてほしいこと（直し方の候補は作らない）。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```

### 走っている間の問題は68件から19件になり、職員141人が相手だったのは2件だった

- ねらい：職員を、仮のくじ引きではなく、持ち場と用事で動かす。そのうえで、ロボットの問題がどこでだれと起きるかを見る
- 変わったこと：走っている間の問題は68件から19件（廊下だけ）、104件から16件（時間で切替）。台の前で待っている間のひやりは47件から12件。型1 の13の番号とも、持ち場の外にいた時間は0秒。積む・受け取るの回数は便の数と全部合った。走っている間の相手に職員141人が出たのは2件だけ（総合受付の事務が持ち場に座っていた所）。同じ種の2回は記録26個がすべて一致
- 見込める効果：残った問題が、ほかの階から物を運びに来る職員・病棟の看護師・患者・積みに来る看護師、という理由のある相手になった。速さや道を変えたときの問題の数を、人の動かし方の都合と分けて読める。確かめるのは、患者の動きも直す次の依頼158 の結果

![依頼157 の静止画18枚。10時ごろと14時ごろの真上・引き・寄りと、化学療法のトイレの前、7時37分の外来の大廊下の清掃](https://pixelstomotors.com/media/LOG491_05_stills157.jpg)

![7時37分48秒の外来の大廊下。清掃の人がカートを押して大廊下と待合を回っている。清掃の人とカートが相手の問題は、1日で0件だった](https://pixelstomotors.com/media/LOG491_06_clean_0737.png)

依頼155 で車いすの患者が救急の待合で約11分動けなかった件は、職員の仮の行き来が消えると起きなくなりました。病棟の患者17人が救急の待合にいた時間は、中央値18.4秒・最長20.3秒です（依頼155 は最長663.8秒）。X線室へ行く道が救急の待合を通り抜ける形そのものは変えていないので、救急室のまわりに仮の行き来で職員が集まっていたことが原因だったと読めます。

#### result157.md（依頼箱が書き戻した依頼157 の結果）

```markdown
# 結果：20261112_157_病院の職員の動き方を持ち場ごとの型に替え清掃と警備の人を足して1日を撮り直す

- 状態：完了
- 始めた時刻：2026-11-12 14:56
- 終わった時刻：2026-11-12 18:31（215分）
- 作業フォルダ：/Users/shimazueiichi/Robotics_UX/ServiceSim
- この続きを Claude Code で話すとき：作業フォルダで `claude --resume 5aab5444-f571-4853-acc5-b83618c61a05`

## Claude Code の報告

やったこと
- 始める前の確かめ：作業場所は cs:125 で保留 0、Unity も回し係も止まっていて、KIOXIA はマウント済みでした。サイト（cf58824）の h1 と params の md5 は依頼の値と一致し、前の写しとの違いも依頼に書かれた項目だけでした。
- 職員の動き方を持ち場ごとの型に替えました。
  - 依頼147〜155 の「持ち場から動く」（1時間に1回のくじ引き）はやめ、職員 141 人に番号 1〜19 を付けました。
  - 便ごとの用事は、6・8・10 が台で積む、7・13 が台で受け取る、です。
  - 9 看護業務補助者は staff_walks_all の時刻に歩いて運びます。薬剤部・中央検査室は扉の所で受け渡し、そのとき 10・13 の1人が扉の内側に来ます。
  - 19 正面玄関の案内は、総合受付の側まで歩いて戻ります。
- ほかの階の職員を運ぶ人 54・通り抜ける人 90・用事で来る医師 36 に分けました。1日 180 人は変えていません。
- 清掃の人2人（清掃のカートを押す。記録の相手の種類は「清掃のカート」）と警備の人2人を足しました。どちらも正面玄関から出入りします。
- 記録を足しました：持ち場の所の外にいた秒、用事の回数、ロボットの問題の相手の番号とそのとき何をしていたか、60 秒以上動けなかった人とまわり 2 m の人と物。
- check-in して実行ファイルを作り、確かめの回6つ・撮る回・静止画18枚・動画・並べた図を作りました。

結果
- 確かめはすべて通りました。
  - 廊下だけ×2・見た目あり・試しの実行ファイルの回で、記録 26 の md5 がすべて同じでした。hall の回も依頼143 と 9 つすべて同じでした。
  - 瞬間移動 0、便 16/16、立ち往生 0、入れない所 0 秒（清掃・警備の人も 0 秒）でした。
- (a) 型1 の13番号とも、持ち場の所の外にいた秒は 0 秒でした。
- (b) 用事の回数は 6・7・8・10・13 とも便の数と合いました。9 は種8 の回で staff_walks_all の 2 回と合いました（種0 は 0 回）。
- (c) 走っている間の問題は、廊下だけで 68→19 件、時間で切替で 104→16 件に減りました。
  - 台の前で待っている間のひやりは 47→12 件です。
  - 相手のある問題のうち職員の形は、95%（113 件）→81%（29 件）でした。依頼の「約6割」は、記録の相手の種類から数えると出せませんでした。
  - 141 人の職員が相手になったのは 17 件で、そのうち 15 件は台へ積みに歩く 6 番の看護師でした。清掃・警備の人が相手の問題は 0 件でした。
- (d) 外来の大廊下 x0〜70 の人数は、1日の平均 1.21→0.69 人に減りました。
  - 混んでいる時間帯は 0.9 人で、目安 2〜8 人の下です。職員の廊下も 1.07→0.39 人に減りました。
  - 7:30〜8:00 の清掃の間は 0.70 人で、緑の便の問題は 1 件でした（相手は用事で来る医師）。
- (e) 60 秒以上動けなかった人は、廊下だけ 6 件・時間で切替 7 件でした。
  - 救急室の台の前で便を待つロボットと救急室の看護師の間で、用事で来る医師が 112 秒止まりました。
  - 正面玄関の案内のそばで、車いすの患者が 117 秒止まりました。
  - ほかは総合受付の前と中待合の混みで、杖の人・車いすが止まったものです。
  - 依頼155 で止まった病棟の車いすの患者（543・675）は、救急室のまわりに 18〜38 秒いただけで、今回は止まりませんでした。
- 動画は 1927.9 秒（48197 コマ）です。撮る回の実時間は 109.3 分でした。
- iCloud に写した 20 ファイルは、md5 がすべて KIOXIA と同じでした。
- check-in は cs:126（保留 0）、実行ファイルは Builds/hospital157 です。

変えたファイル
- Assets/ServiceSim/Hospital/ の HospitalRun.cs、HospitalRun147.cs、HospitalRun149.cs、HospitalRun155.cs、HospitalWalker.cs（清掃のカートの形を足した）、HospitalLook.cs、Editor/HospitalSetup.cs、Hospital.unity
- 足したもの：HospitalRun157.cs、Data/hospital-unity-params-157.json（それぞれ .meta も）
- 報告は claude_code_reports/20261112_hospital_157.txt に置きました。出力は KIOXIA の 20261112_staff157/ と、iCloud の hospital/staff157/ です。

決めてほしいこと
1. 通り抜ける人 90 人のうち 64 人を出していません。access で正面玄関に入れる職員は事務だけなので、看護師・検査技師・医師・薬剤師は歩いて行けません。今までの決まりどおり、出さずに数えました。どうするか。
2. 外来の大廊下の人数がさらに減り、目安を下回りました。これでよいか。
3. ロボットは届け先で待たずに戻ります。そのため、受け取る職員が台に着く時にはロボットはもういません。試算の決まり（受け取る人が来るまで待つ）と合っていません。どうするか。
4. load_s・pickup_wait_s・unload_s・staff_handoff_s は Unity の params に無かったので、サイトの assumptions.json の値（30・60・20・20 秒）を写して使いました。params に入れるか。
5. 持ち場に立っている職員のそばで人が動けない例が出ました（上の (e)）。どうするか。
6. Unity で決めた値（summary の unity_only157。報告に全部並べました）でよいか。用事の時刻、台と扉の点、清掃の回る所、警備の立つ所と見回りの時刻、カートの大きさと速さなどです。
7. 補助者が歩いて運ぶ回は、撮る回（廊下だけ・0.6m/秒・種0）に無いので、その静止画は撮っていません。

判定：止めた（決めてほしいことあり）
```

#### report157.txt（依頼157 の報告の全文）

```text
依頼157 報告　2026-11-12
病院の職員の動き方を持ち場ごとの型に替え、清掃と警備の人を足して、1日を撮り直す

■ 0. 始める前の確かめ（進めた）
- 作業場所：cs:125 が頭、保留の変更 0
- 動いている物：Unity のエディタ・画面なしの Unity・回し係はなし（動いていたのは Unity Hub と依頼箱の回し係だけ）
- KIOXIA：マウント済み
- p2m-site main：cf58824fdcfb…（依頼の cf58824）
  tools/hospital_layouts/hospital_h1.json　md5 76084c213ce03712abcdd6fa1d143489（一致。依頼155 の写し hospital_h1-155.json と同じ）
  tools/hospital_sim/hospital-unity-params.json　md5 77e8385a63b952c5b6e0fab94e94c8ef（一致）
- 前の写し（415ee6bc）との違い（項目ごとに比べた。依頼に書かれたものだけだった）：
  people_flow.staff_moves（what・source と value の中身を全部入れ替え：型・持ち場ごと（19 行）・やめたこと）／
  people_flow.elevator_traffic の source と、ほかの階の職員の split（運ぶ人 0.3・通り抜ける人 0.5・用事で来る医師 0.2）／
  people_flow.cleaning_security（新しい）／day_schedule.staff_walks_all・staff_walks_all_what（新しい）。day_schedule.trips_all は同じ

■ 1. 作ったもの
- 新しい引数は作らず、-h147People flow（既定）の中身を替えた。flow は Data/ に足した hospital-unity-params-157.json（77e8385a。サイトと同じ md5）と、
  依頼155 の形 hospital_h1-155.json（76084c21）で建てる。-h147People hall は依頼143 の形のまま
- 依頼147〜155 の「持ち場から動く」（1人が1時間に1回、くじ引きで行き先を選ぶ）は全部やめた（staff_moves147.csv の「持ち場から動く」は 0 回）
- 職員 141 人に staff_moves.持ち場ごと の番号（1〜19）を付けた（職種と持ち場の名前で当てた。19 行とも人数が表と同じ）
  型1（1〜3・5・10〜18）：持ち場の所から出ない
    10 薬剤部：赤の便ごとに1人が払い出し台の横で積む（load_s）。補助者が歩いて運ぶ回は、扉の内側で補助者に渡す
    13 中央検査室：緑・青の便が着くたびに1人が検体受付の台の横で受け取る（pickup_wait_s のあと unload_s）。補助者が運ぶ回は扉の内側で受け取る
  型2（6〜8）：6 内科の処置室＝青の便ごとに台の横で積む／7 外来化学療法室＝赤の便が着くたびに受付の台で受け取る／8 救急室＝緑の便ごとに台の横で積む
  型2（9 看護業務補助者）：day_schedule.staff_walks_all[道の決め方][速さ][種] の時刻に、手の空いている方が積む所で受け取り（staff_handoff_s）、
    届け先で渡して（staff_handoff_s）、持ち場へ戻る。薬剤部・中央検査室は扉の外（廊下）で受け渡し、そのとき 10・13 の1人が扉の内側に来る
  型3（4）：依頼154 までの動きのまま（中待合へ呼びに出る・案A の付き添い）
  型4（19 正面玄関の案内）：ふだんは正面玄関に立ち、1人あたり1時間に2回、総合受付の側（玄関の通りの中）まで歩いて戻る
  診療放射線技師（2人）：入れる所は検査技師の access のまま、動き方は番号 16（X線室の中だけ）
- 台の職員の側の点（points157.csv）：内科の処置室 (13.2,38.0)・救急室 (103.0,15.8)・外来化学療法室の受付 (108.5,33.0)・薬剤部 (16.9,12.2)・検体受付 (84.5,11.2)。
  扉の所：薬剤部 内 (11.9,12.5)／外 (14.1,13.5)、検体受付 内 (78.9,12.5)／外 (81.1,13.5)（扉の前はロボットが通るので扉の横）
- ほかの階の職員を split の3つに分けた（1時間 20 人・1日 180 人のまま。人数は 54・90・36）
  運ぶ人：エレベーター⇔検体受付／払い出し口の扉の外（交互）に 1〜2 分立って戻る（看護師の入れる所）
  通り抜ける人：エレベーター⇔正面玄関（向きは半々を種で引く。職種は依頼149 と同じく職員1人を等しく引く）
  用事で来る医師：エレベーター⇔救急の処置の場所／内視鏡室／生理検査の検査室（等しく引く）に 5〜15 分
- 清掃の人2人・警備の人2人を足した（職員 141 人とは別。正面玄関から入って出る）
  清掃の人：清掃のカートを押す。カートと押す人を1つの長方形（幅 0.6 m・長さ 1.0＋0.5 m）で動かし、速さは職員の半分（0.65 m/秒）。
    人のよけ方の部品は付けない（ストレッチャーと同じ）。ロボットから見ると人と同じ相手で、問題の記録の相手の種類は「清掃のカート」
    7:30 に入り、1人目＝外来の大廊下の西と総合受付の待合・お薬の窓口の待合、2人目＝大廊下の東と会計の待合・生理検査の待合の点を順に回って、7:55 に出た。
    10:00・13:00・15:30 に入り、1人目＝トイレ（西）、2人目＝トイレ（東）→化学療法のトイレ（1か所 5〜10 分）を回って出る（3回とも 9〜23 分で出た）
  警備の人：1人目＝8:00 に入って正面玄関に立ち、16:00 に出る。2人目＝7:30 に入って正面玄関に立ち、8:00〜16:00 の毎時ちょうどに大廊下を西の端から東の端まで見回って戻る（9 回）
  入れる所：清掃＝外来の患者と化学療法の患者の入れる所、警備＝外来の患者の入れる所（どちらも座らない）
- 患者・付き添い・見舞いの人の動き、病棟の患者と付き添いの看護師、案A、数える問題、ロボットの止まり方、人がロボットをよける決まりは変えていない。
  配膳の場面・実行ファイル・台帳・共通の部品には触っていない。見た目は依頼153 の色・印、カメラの決め方も同じ（清掃のカートの見た目だけ足した：灰色の箱＋押す青の職員）
- 記録に足したもの（flow だけ）
  staff157.csv（職員ごと：番号・型・持ち場の所の外にいた秒（助け・用事の分も分けて）・用事の回数）／errands157.csv（用事1件ずつ）／
  partners157.csv（ロボットの問題1件ずつの相手：分け方・番号・そのとき何をしていたか）／
  stall157.csv・stall_near157.csv（歩いている途中で 60 秒以上動けなかった人と、その間まわり 2 m にいた人と物（ロボットも））／
  extra157.csv（清掃・警備の人の出入りと着いた所）／points157.csv（台・扉・案内・警備・清掃の点）。summary に flow_staff_by_no・flow_problem_partners・flow_stalls_60s・unity_only157 など
- check-in：cs:126（保留 0）。実行ファイル Builds/hospital157/HospitalSim.app（build_info：unity_cs cs:126・pending_changes 空）。Builds/hospital127〜155 は残した。
  変えたのは Assets/ServiceSim/Hospital/ の中だけ：HospitalRun.cs・HospitalRun147.cs・HospitalRun149.cs・HospitalRun155.cs・HospitalWalker.cs（形 Cart を足した）・
  HospitalLook.cs（カートの見た目）・Editor/HospitalSetup.cs・Hospital.unity（場面を作り直し）、足した HospitalRun157.cs・Data/hospital-unity-params-157.json（＋.meta）
  （場面を作り直したときに中身の同じ材質 7 つが変更の印になったので、中身が cs:125 と同じことを確かめて元に戻した）
  check-in の前に同じ中身で作った試しの実行ファイルで回した1日（full0・full8）も、check157a・check157s8 と記録 26 の md5 がすべて同じ

■ 2. 確かめ（cs:126。廊下だけ・0.6m/秒・種0 を2回＝check157a・b、時間で切替＝check157c、見た目あり・カメラなし＝check157L、
   廊下だけ・種8＝check157s8（補助者が歩いて運ぶ回が2回ある種）、hall＝h143repro157。どれも completed）
(1) 同じ種の2回：check157a と check157b の記録 26（依頼155 の 19 に errands157・extra157・partners157・points157・staff157・stall157・stall_near157 を足したもの）の md5 がすべて同じ。
    summary.json の違いは回の名前と wall_s だけ。見た目あり（check157L）も check157a と記録 26 がすべて同じ（summary の違いは回の名前と wall_s だけ）
    -h147People hall：h143repro157 と依頼143 の check143a の記録 9 の md5 がすべて同じ。summary.json の違いは回の名前・cs・wall_s だけ
(2) 瞬間移動：ロボット 0（1コマ最大 0.030 m）・人 0（最大 廊下だけ 0.118 m・時間で切替 0.109 m）。清掃・警備の人は正面玄関から歩いて出入りした
(3) 便：2回とも 16 便がすべて走り終わった（途中 0・走れなかった 0・遅れ 0）。最後の便が戻った 廊下だけ 31629.3 秒・時間で切替 31629.9 秒。移る 5 回
(4) 立ち往生：ロボット 0・助け 0（2回とも）。人が 180 秒動けず道を引き直した 0・0（依頼155 は 3・0）。行き先の近くで止まって待った 10・10
(5) ロボットの中心が access でロボットの入らない所に入った時間：0 秒（どの所にも入っていない時間も 0 秒）
(6) 人が access で入れない所に入った時間（人の中心。役割ごと。2回とも）：外来の患者 0・化学療法の患者 0・救急の患者 0・看護師 0・医師 0・薬剤師 0・検査技師 0・事務 0 秒、
    清掃の人 1・2・警備の人 1・2 も 0 秒。どの所にも入っていない時間も全部 0 秒。付き添いのない外来の患者が裏の通路にいた時間 0 秒
(7) 飛ばした行き先・出さなかった人（種類ごと。2回とも同じ）
    種類                         時刻表の人数  出した  出さなかった  飛ばした行き先
    外来の患者                        390        390        0             0
    付き添い                          192        192        0             0
    化学療法の患者                     20         20        0             0
    救急の患者                         18         18        0             0
    病棟の患者                         54         54        0             0
    付き添いの看護師                   54         54        0             0
    見舞いの人                        105        105        0             0
    ほかの階の職員・運ぶ人              54         54        0             0
    ほかの階の職員・通り抜ける人        90         26       64             0   ←
    ほかの階の職員・用事で来る医師      36         36        0             0
    通り抜ける人の出さなかった 64 人は、職種が 看護師 27・検査技師 19・医師 11・薬剤師 7。access では正面玄関（とその前の風除室）に入れる職員は事務だけなので、
    エレベーター⇔正面玄関を歩いて行けない（依頼149 からの決まりどおり、出さずに数えた。summary flow_not_spawned「ほかの階の職員（出口）」64）。出した 26 人は全部 事務（決めてほしいこと 1）
(a) 型1 の職員が持ち場の所の外にいた秒（番号ごと。廊下だけ・時間で切替・種8 の3回とも同じ）：
    1・2・3・5・10・11・12・13・14・15・16・17・18 の13番号とも 0 秒（10・13 の台・扉の点は持ち場の所＝薬剤部・中央検査室の中）
    型1 でない番号（参考。廊下だけ）：4（型3）1279.9 秒（付き添い・呼びに出る）／6・8（型2）0 秒／7（型2）207.9 秒（受付の台は同じ部屋の 化学療法の受付・待合。用事の間 190.3 秒）／
      9（型2）0 秒（種0 は運ぶ回が無い。種8 は 333.6 秒）／19（型4）1397.0 秒（用事の間 1253.0 秒）。助けは 0 回なので、助けで持ち場を出た秒は 0
(b) 用事の回数
    番号  用事                              廊下だけ（種0）     時間で切替（種0）   廊下だけ（種8）
    6     青の便で積む                       5／便 5  合う       5／便 5  合う        8／便 8  合う
    7     赤の便が着いて受け取る             9／便 9  合う       9／便 9  合う        6／便 6  合う
    8     緑の便で積む                       2／便 2  合う       2／便 2  合う        1／便 1  合う
    10    赤の便で積む                       9／便 9  合う       9／便 9  合う        6／便 6  合う（ほかに人が運ぶ回で渡す 1）
    13    緑・青の便が着いて受け取る         7／便 7  合う       7／便 7  合う        9／便 9  合う（ほかに人が運ぶ回で受け取る 1）
    9     人が運ぶ回（staff_walks_all）      0／0 回  合う       0／0 回  合う        2／2 回  合う
    （種8：補助者 54（救急室）が 326.4 秒に救急室の処置室→検体受付、補助者 53（内科）が 16491.7 秒に薬剤部の払い出し口→外来化学療法室の受付。
      どちらも検査技師・薬剤師が扉の内側に来て受け渡した。空いている人がいなくて遅れた用事 0・扉の内側に来る人がいない 0）
    19 案内：38 回（2人×約9時間×1時間2回の見込み 36）
(c) 問題の数（1日・0.6m/秒・種0。1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった。区間はロボットの中心がいた所）
    廊下だけ              依頼157          依頼155          依頼154           依頼149         依頼147         依頼143
      走っている間 全部    5／9／5／0／0／0  6／27／32／0／0／3 17／54／51／0／0／10 9／37／37／0／0／1 8／42／35／0／0／3 23／49／31／2／1／5
        （合計）           19               68               132               84              88              111
        外来の大廊下       0／2／0／0／0／0  1／7／5／0／0／1   5／12／7／0／0／2   1／5／4／0／0／0  1／7／2／0／0／0  21／48／28／2／1／5
        職員の廊下         5／7／5／0／0／0  4／19／23／0／0／1 4／27／33／0／0／3  5／24／28／0／0／0 5／30／28／0／0／2 2／1／2／0／0／0
        部屋の中           0／0／0／0／0／0  1／1／4／0／0／1   8／15／11／0／0／5  3／8／5／0／0／1  2／5／5／0／0／1  0／0／1／0／0／0
      台の前で待っている間 0／12／9／0／0／0 0／47／8／0／0／0  0／64／12／0／0／0  0／65／11／0／0／0 0／66／9／0／0／0 0／0／0／0／0／0
      速いままのひやり     9                27               54                37              42              35
      助け                 0                0                0                 0               0               2
      大廊下の東の端       0                8                38                1               4               22
    時間で切替            依頼157          依頼155          依頼154           依頼149         依頼147         依頼143
      走っている間 全部    3／8／5／0／0／0  12／42／42／0／1／7 11／52／54／0／0／5 15／39／52／0／0／4 14／49／51／0／0／5 25／60／16／1／1／4
        （合計）           16               104              122               110             119             107
        外来の大廊下       3／4／0／0／0／0  4／11／7／0／1／2  4／19／11／0／0／2  5／8／7／0／0／0  3／10／6／0／0／2 23／49／13／0／1／3
        職員の廊下         0／4／5／0／0／0  6／28／29／0／0／3 3／21／36／0／0／1  8／24／40／0／0／1 7／35／38／0／0／2 2／11／3／1／0／1
        部屋の中           0／0／0／0／0／0  2／3／6／0／0／2   4／12／7／0／0／2   2／7／5／0／0／3  4／4／7／0／0／1  0／0／0／0／0／0
      台の前で待っている間 0／12／8／0／0／0 0／40／7／0／0／0  0／57／12／0／0／0  0／58／11／0／0／0 0／57／5／0／0／0 0／0／0／0／0／0
      速いままのひやり     8                42               52                39              49              52
      助け                 0                0                0                 0               0               1
      大廊下の東の端       0                14               27                11              22              48
    （玄関の通りは 0。職員の廊下＝職員の中廊下・西／東の縦廊下・外来の奥の職員通路）
    相手（partners157.csv。1日の全部の問題のうち相手のあるもの。廊下だけ 36 件・時間で切替 33 件）：
      廊下だけ：職員 17（6 内科の処置室の看護師 15・17 総合受付などの事務 2）・ほかの階の職員 10（運ぶ人 6・用事で来る医師 4）・病棟の看護師 2・
        患者と付き添い 6（外来の患者 4・付き添い 1・化学療法の患者 1）・ストレッチャー 1。清掃・警備の人は 0 件
      時間で切替：職員 17（6 が 15・17 が 2）・ほかの階の職員 9（用事で来る医師 5・運ぶ人 4）・病棟の看護師 2・患者と付き添い 4・ストレッチャー 1
      6 の 15 件は全部 台の前で待っている間（内科の処置室で、青の便に積みに台へ歩く 10・積んで持ち場へ戻る 5）。走っている間の相手に 141 人の職員（1〜19）は 2 件（17 事務・持ち場に座っている）だけ
      走っている間（廊下だけ・2・3・6 の 14 件）の相手：ほかの階の運ぶ人 5（出口へ 4・扉の所に立つ 1）・病棟の看護師 2・17 事務 2・用事で来る医師 1・外来の患者 2・化学療法の患者 1・ストレッチャー 1
    依頼155 との比べ：相手のある問題のうち職員の形（記録の相手の種類「スタッフ」＝職員・ほかの階の職員・病棟の看護師）は、依頼155 113／119 件（95%）→ 依頼157 29／36 件（81%）（廊下だけ）、
      時間で切替 130／140（93%）→ 28／33（85%）。依頼の「約6割」は、ここで数えた形（events.csv の相手の種類）では出せなかった（95%・93%）。
      件数では 依頼155 の職員の形 113 件 → 29 件。そのうち 141 人の職員は 17 件（台の前で待っている間の 6 が 15 件）
(d) 時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人・清掃・警備の全部。廊下だけ check157a。形は依頼155 と同じ）
    時刻          大廊下x0〜70  依頼155  目安(flow_estimate)  大廊下x70〜120  依頼155  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
    7:30〜8:00     0.7        1.1          1〜3               0.2        0.4       5.5   12.3    141.7       0.5           3.6              0.0          0.7   165.1
    8:00〜8:30     0.8        1.5          2〜8               0.5        0.5      12.7   52.5    151.6       0.4           4.9              0.1          2.6   226.0
    8:30〜9:00     0.5        1.1          2〜8               0.3        0.5      22.5   84.2    164.7       0.2           5.0              0.2          3.4   281.0
    9:00〜9:30     1.0        1.7          2〜8               0.4        0.8      36.2   90.5    173.5       0.5           5.2              0.1          4.8   312.2
    9:30〜10:00     1.0        1.6          2〜8               0.5        0.8      37.8  107.6    182.3       0.4           5.5              0.2          3.0   338.3
    10:00〜10:30     0.7        1.4          2〜8               0.5        0.6      43.0  114.3    182.9       0.3           5.1              0.3          3.8   350.9
    10:30〜11:00     1.2        1.5          2〜8               0.3        0.4      36.4  120.4    184.5       0.4           5.2              0.1          4.4   352.9
    11:00〜11:30     0.7        1.3          1〜3               0.4        0.5      36.4  130.9    183.2       0.4           4.7              0.3          3.7   360.7
    11:30〜12:00     0.8        1.1          1〜3               0.5        0.5      34.9  122.5    180.1       0.4           4.8              0.1          2.6   346.8
    12:00〜12:30     0.4        1.4          1〜3               0.3        0.4      39.6  104.0    183.4       0.4           4.9              0.1          1.8   334.8
    12:30〜13:00     0.6        0.7          1〜3               0.3        0.3      42.6   70.4    186.4       0.3           4.8              0.1          1.4   307.0
    13:00〜13:30     0.9        1.5          1〜3               0.3        0.5      41.4   54.8    182.9       0.3           4.8              0.2          2.3   287.9
    13:30〜14:00     0.7        1.2          1〜3               0.3        0.7      33.3   49.6    176.4       0.3           4.5              0.2          2.5   267.7
    14:00〜14:30     0.6        0.9          1〜3               0.2        0.3      24.0   39.2    165.6       0.2           4.6              0.0          1.4   235.8
    14:30〜15:00     0.3        1.0          1〜3               0.2        0.4      18.4   33.7    157.9       0.8           4.6              0.1          0.7   216.8
    15:00〜15:30     0.7        1.2          1〜3               0.2        0.7      15.5   29.3    159.3       0.1           4.3              0.2          1.4   211.0
    15:30〜16:00     0.5        0.7          1〜3               0.1        0.3      18.6   25.2    157.7       0.4           4.6              0.0          2.1   209.2
    16:00〜16:30     0.4        1.0          1〜3               0.3        0.6      11.7   16.9    155.7       0.7           3.3              0.2          0.4   189.6
    外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 0.9 人・最大 4 人（依頼155 1.4 人・6 人／目安 2〜8 人）、
      空いている時間帯（7:30〜8:00・11:00〜16:30）平均 0.6 人・最大 4 人（依頼155 1.1 人・7 人）、午後（13:00〜16:30）平均 0.6 人・最大 4 人（依頼155 1.1 人・6 人／目安 1〜3 人）。
      1日の平均 0.69 人（依頼155 1.21 人）。30分ごとでは、混んでいる時間帯は 6 つとも目安の下の端 2 を下回り（0.5〜1.2）、午後も 7 つとも 1 を下回った（0.3〜0.9）
    時間で切替（check157c）：1日の平均 0.71 人（依頼155 1.26 人）、混んでいる時間帯 平均 0.9 人・最大 4 人、空いている時間帯 平均 0.6 人・最大 3 人、午後 平均 0.6 人・最大 3 人
    大廊下 x70〜120：1日の平均 0.32 人・最大 3 人（依頼155 0.50 人・4 人）。職員の廊下：平均 0.39 人・最大 2 人（依頼155 1.07 人・6 人）
    7:30〜8:00（清掃の間）：大廊下 x0〜70 平均 0.70 人・最大 3 人（依頼155 1.10 人・4 人）、x70〜120 平均 0.20 人・最大 2 人。
      この間に出た緑の便は1便（7時50分15秒に出発）：問題 0／0／1／0／0／0（よけさせられた 1。相手は救急室から出口へ帰る 用事で来る医師）。清掃の人・カートが相手の問題は1日で 0 件
    大廊下の人が減ったわけ：依頼155 まではふだんの行き来（1日 約1,200 回）で職員が大廊下・職員の廊下を通っていた。それが無くなり、足した清掃・警備の人・ほかの階の職員の3つ
      （出せたのは 116／180 人）では埋まらなかった
(e) 歩いている途中で 60 秒以上動けなかった人（廊下だけ 6 件・時間で切替 7 件。種8 は 6 件。stall157.csv・stall_near157.csv。まわり＝中心どうし 2 m 以内）
    廊下だけ：
    #1 ほかの階の職員・用事で来る医師（id 157）7:48〜7:50（112 秒）救急の処置の場所 (102.3, 15.05)、救急室の台から出口へ帰るところ。
       まわり：ロボット（救急室の台の前で便を待って止まっていた。最も近い 0.77 m）112 秒・8 救急室の看護師（持ち場に立っていた。1.02 m）112 秒。この2つの間で動けなかった
    #2 外来の患者（車いす・id 225）8:08〜8:10（117 秒）正面玄関 (45.6, 9.0)、総合受付へ向かうところ。まわり：19 正面玄関の案内（持ち場に立っていた。0.55 m）117 秒、ほかは歩いていた患者 3 人が 3〜4 秒
    #3 外来の患者（杖の人・id 234）8:12〜8:13（110 秒）総合受付の前 (38.9, 17.7)。まわり：総合受付の前に立っている外来の患者 2 人（0.45 m）110 秒・17 事務（受付の内側に座っている）110 秒ほか
    #4 付き添い（杖の人・id 415）9:24〜9:25（99 秒）総合受付の前 (40.5, 17.7)。まわり：受付の前に立っている患者 3 人・17 事務 ほか
    #5 外来の患者（車いす・id 435）9:51〜9:52（75 秒）ほかの外来の中待合 (84.9, 34.1)、会計の待合へ向かうところ。まわり：中待合で待っている患者・付き添い 7 人（止まっていた）
    #6 外来の患者（杖の人・id 251）9:54〜9:56（117 秒）ほかの外来の中待合 (69.6, 34.1)。まわり：中待合に座っている・立っている患者と付き添い 15 人（止まっていた）
    時間で切替は上の6件と同じに加えて、#7 外来の患者（杖の人・id 814）13:02〜13:04（121 秒）総合受付の前 (43.0, 17.7)
    （ロボットがまわりにいたのは #1 だけ。清掃・警備の人がまわりにいたものは無い）
    依頼155 で止まった病棟の患者：
      廊下だけ id 543（車いす・X線室の帰り）：救急の待合にいた 18.5 秒・救急の処置の場所 36.8 秒（依頼155 は 663.8 秒・引き直し 3 回）。60 秒以上動けなかった記録なし
      時間で切替 id 675（車いす・X線室）：救急の処置の場所にいた 38.1 秒（依頼155 は 1666.5 秒）。60 秒以上動けなかった記録なし
      病棟の患者 17 人の 救急の待合 にいた時間 中央値 18.4 秒・最長 20.3 秒（依頼155 は最長 663.8 秒）、救急の処置の場所 中央値 36.7 秒・最長 196.9 秒
      （最長は id 984（車いす・X線室 30816〜31793 秒）。60 秒以上動けなかった記録はなく、X線室の中の立って待つ点の近くで処置の場所の長方形にかかっていたと見られる）
    種8（check157s8）も同じく 6 件（受付・中待合の前の杖の人・車いす、救急室の台の前など）。病棟の患者の救急の待合 最長 18.6 秒・処置の場所 最長 40.9 秒

■ 3. 撮ったもの（色A・パネル付き・1920×1080。撮る回 rec157＝廊下だけ・0.6m/秒・種0・cs:126・車いすの場所の印あり）
- 撮る回の動きは見た目なしの確かめの回と同じ：rec157 は check157L と、流して書く記録（crowd・elevator149・errands157・events・partners157・robot_track・staff_moves147・toilet149・zones147）が
  撮り終えた時刻まで頭からバイト一致。access147・build143・chemo_way155・extra157・moves・points157・rescues・staff147・stall157・stall_near157 は md5 も同じ。
  er_cross154・legs・people147・robot_zones・seats147・staff157・trips は回の終わりに書く表なので、撮り終えたところで止めた分だけ違う（依頼155 と同じ）。
  撮る回の実時間 109.3 分（撮り終えて止める＝終了コード 5。記録はそろっている）
- カメラ（透視投影・縦の画角 40°・2720×2160 で撮って縮める。距離と注視点は依頼139 の camfit139.py と同じ決め方。上9つは依頼155 と同じ値）
  名前        見え方                                      方位  見下ろし  範囲                        注視点 (x, z)     距離
  top_all     真上の全体                                  0°    90°      x−0.5〜120.5・z−0.5〜60.5    (60.00, 30.00)   142.8 m
  w_west      引き・西半分                                左30° 75°      x−0.5〜72・z12.5〜31.5       (34.06, 21.26)    85.8 m
  w_east      引き・東半分                                左30° 75°      x48〜120.5・z12.5〜31.5      (82.56, 21.26)    85.8 m
  n_elev      寄り・エレベーターホールとトイレ（西）の前   左30° 75°      x16.5〜32・z14.5〜31.5       (24.33, 22.51)    34.0 m
  n_midwait   寄り・中待合（内科と診察室）                左30° 75°      x21〜43・z30〜42             (31.80, 35.73)    32.4 m
  n_wait      寄り・総合受付と会計の待合                  左30° 75°      x25〜70・z15〜27.5           (46.58, 20.95)    54.6 m
  n_er        寄り・救急の待合                            左30° 75°      x98〜121・z4〜31.5           (109.48, 16.64)   51.9 m
  n_erway     寄り・正面玄関から救急へ行く道              左30° 75°      x42〜121・z−0.5〜31.5        (79.76, 13.80)    99.7 m
  n_chemowc   寄り・化学療法のトイレの前                  左30° 75°      x106〜121・z46〜60.5         (113.56, 52.90)   30.6 m
  n_clean     寄り・外来の大廊下の清掃（新しい）          左30° 75°      x26〜70・z17〜31.5           (47.14, 23.80)    54.8 m
- 静止画の時刻（確かめの回 check157L の zones147・people147・toilet149・chemo_way155・extra157 から。決め方は依頼155 と同じ）：
  上の6つ：10時ごろ＝9780 秒（10時13分。9時30分〜10時30分で人がいちばん多い分・358 人）／14時ごろ＝21900 秒（13時35分。285 人）
  n_er：8820 秒（9時57分・救急の患者 3 人）／23400 秒（14時00分・2 人）　n_erway：9120 秒（10時02分・1 人）／24180 秒（14時13分・1 人）
  n_chemowc：11311.6 秒（化学療法の患者 id 324 がトイレの前の通り道に入って 1 秒後）
  n_clean（新しい）：468 秒（7時37分48秒）。7:30〜8:00 のうち、清掃の人が寄りの枠の中の大廊下の点（x46・x50）で拭いていて、7:40 にいちばん近い時刻
    （2人目が大廊下の (50.5, 29.8) に止まっている。1人目は隣の総合受付の待合を回っている）
  補助者が歩いて運んでいる所：撮る回（廊下だけ・0.6m/秒・種0）の staff_walks_all は 0 回なので撮っていない（種8 の確かめの回には2回ある）
  開いて見て、n_clean に清掃の人とカート（灰色の箱を押す青の職員）が2組写っていること（大廊下に1組・総合受付の待合に1組）を確かめた。並べた図の文字の切れなし
- 動画：hospital157_1日_早回し_30x.mp4　1920×1080・25コマ/秒・48197コマ・1927.9 秒（32分7.9秒）。依頼155 と同じ作り：
  7時30分（0.05 秒）から最後の便が戻った時刻（31629.3 秒＝16時17分9秒）まで、ふだん 1.2 秒ごと＝30倍で引き（ロボットのいる側：x<60 は西半分、それ以外は東半分）、
  ロボットが走っている間（16 区間）は 0.2 秒ごと＝5倍で付いて行く寄り。5倍 26213 コマ・30倍 21984 コマ。凡例に「清掃のカート」を足した
- 並べた図：hospital157_静止画18枚.png（1〜2段＝10時ごろ、3〜4段＝14時ごろ。各段4枚は依頼155 と同じ並び。5段＝寄り 化学療法のトイレの前・寄り 外来の大廊下の清掃）

■ 出力の場所
- KIOXIA：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_staff157/
  runs/（check157a・check157b・check157c・check157L・check157s8・h143repro157・rec157）・stills/（静止画18枚）・sheets/（並べた図）・videos/（動画）・
  agg157_out.txt（確かめのまとめ）・cmp157_out.txt（記録の md5 の比べ）・camspath157*.csv・cams157.txt・md5_icloud157.txt・logs/・report157.txt（この報告の写し）・
  site/（サイトの h1・params・assumptions.json の写し）・
  tools/（run157.sh・rec157.sh・vid157.sh・test157.sh・agg157.py・cmp157.py・cams157.py・paths157.py・pan157.py・sheet157.py と、依頼139〜155 の写し）・
  test/（check-in の前の試しの実行ファイル hospital157_testbuild1・2 と、それで回した t1s8・t2s8（40分・30分）・full0・full8（1日））
- iCloud：…/サービスロボット導入シミュレーション/hospital/staff157/ に 並べた図・動画・stills/（静止画18枚）を写した。20 ファイルとも md5 が KIOXIA と同じ
  hospital157_静止画18枚.png 63bb8a1b9c718344a74e46e284626b70 ／ hospital157_1日_早回し_30x.mp4 4e825882c133c7a359a8813f041a1fbd（静止画は md5_icloud157.txt）

■ check-in の番号
cs:126（保留 0）。実行ファイル Builds/hospital157（cs:126）

■ 決めてほしいこと（直し方の候補は作っていない）
1. ほかの階の職員の「通り抜ける人」（エレベーター⇔正面玄関）90 人のうち 64 人を出していない（2 の (7)）。職種を依頼149 と同じく職員1人を等しく引いたところ、
   access で正面玄関（風除室を含む）に入れる職員は事務だけなので、看護師・検査技師・医師・薬剤師の 64 人は歩いて行けない。出した 26 人は全部 事務。どうするか
2. 外来の大廊下 x0〜70 の人数がさらに減った（2 の (d)。1日の平均 1.21 → 0.69 人、混んでいる時間帯 1.4 → 0.9 人で6つとも目安 2〜8 の下、午後 1.1 → 0.6 人で目安 1〜3 の下）。
   職員の廊下も 1.07 → 0.39 人。ほかの階の職員を分けて清掃・警備の人を足しても、ふだんの行き来が無くなった分は埋まらなかった。これでよいか
3. ロボットは届け先で待たずに戻る・次の積む所へ移る（依頼143 からのまま。今回変えていない）。受け取る用事（7・13）は、ロボットが着いてから pickup_wait_s（60 秒）後に
   職員が台へ歩き始めて unload_s（20 秒）いるので、職員が台に着く時にはロボットはもういない。試算の決まり（受け取る人が来るまで待つ）とは合っていない。どうするか
4. load_s・pickup_wait_s・unload_s・staff_handoff_s は Unity の params（hospital-unity-params.json）に無く、staff_moves の errand の文に名前だけ出てくる。
   サイトの tools/hospital_sim/assumptions.json（cf58824）common の値（30・60・20・20 秒）を写して使った（summary の site_assumptions157）。params に入れるか
5. 60 秒以上動けなかった人の記録から（2 の (e)）：持ち場に立っている職員のそばで動けない例が出た（正面玄関の案内のそばの車いす 117 秒・救急室の台の前で便を待つロボットと
   救急室の看護師の間の用事で来る医師 112 秒）。ほかは総合受付の前・中待合の人の混みで、杖の人・車いすが 75〜121 秒。どうするか
6. サイトに書いていなくて Unity で決めた値（summary の unity_only157）：
   - 積む用事：出発 − load_s − 20 秒に台へ歩き始め、着いてから load_s とどまって戻る（ロボットの出発は時刻表のまま）
   - 受け取る用事：ロボットが着いてから pickup_wait_s 後に歩き始め、着いてから unload_s とどまる
   - 用事に行く人：その番号の手の空いている人（持ち場にいる・戻っている）のうち、行く点に直線でいちばん近い人。いなければ空くまで待つ
   - 台の職員の側の点：台（ロボットの台の前に一番近い家具）のまわりの点（家具の辺から 0.4 m・0.8 m ごと。ロボットの帯＋0.5 m の点は除く）のうち、その役割の入れる所で台の前に一番近い点
   - 扉の所の点：扉から 3.5 m 以内で、ロボットの帯＋0.5 m にかからず、扉の幅の端から 0.25 m より外（扉の横）の一番近い点（中＝薬剤師・検査技師、外＝看護師の入れる所）
   - 補助者：積む所で受け取る秒も staff_handoff_s。薬剤部・中央検査室へ向かい始めたら 10・13 の1人が扉の内側へ来て、受け渡しが終わるまで待つ（上限 900 秒）
   - 案内（19）：1時間に2回＝指数分布の間（平均 1800 秒）。行き先＝玄関の通りの中で総合受付のカウンターの東の端に一番近い点 (44.0, 17.0)、30 秒とどまって戻る
   - ほかの階の職員：人数は 3：5：2 の大きい余りから足し（54・90・36）、並びを種で入れ替える。運ぶ人は看護師の入れる所・検体受付と払い出し口を交互・扉の外の点。
     通り抜ける人は向きを半々で引き、職種は職員1人を等しく引く（依頼149 と同じ）。用事で来る医師は3か所を等しく引き、その所の中の点。とどまる時間は文の 1〜2 分・5〜15 分
   - 清掃のカート：カートと押す人を1つの長方形（幅 0.6・長さ 1.0＋押す人 0.5 m）、速さ＝職員の速さ 1.3 m/秒の半分、NavMeshAgent の半径 0.35 m、人のよけ方の部品なし
   - 朝の清掃：回る所（1人目＝大廊下 x1〜46 と総合受付の待合・お薬の窓口の待合、2人目＝大廊下 x50〜119 と会計の待合・生理検査の待合。中待合・化学療法の待合は回らない）と点の並び。
     8:00 の 300 秒前に終わるように、点ごとの止まる秒を等しく決めた（1人目 20 点×51.1 秒・2人目 18 点×52.8 秒）
   - トイレの見回り：10:00・13:00・15:30 ちょうどに入る。1人目＝トイレ（西）、2人目＝トイレ（東）→化学療法のトイレ。1か所 5〜10 分を種で引く
   - 警備：1人目の立つ所 正面玄関の (46, 5) の近く、2人目 (50, 11) の近く。2人目は 7:30 からいて、見回りは 8:00〜16:00 の毎時ちょうど（9 回）、大廊下 z29 の x1 と x119 を通る。2人目は 16:00 以降も残る
   - 持ち場の所：持ち場の名前の access の所（型3 は中待合も）。中かは長方形を 0.025 m 広げて見る
   - 60 秒以上動けなかった：歩いている途中（着いて待っている・座っている・助けを除く）で、1コマの速さが 0.05 m/秒以下になった点から 0.5 m の中に 60 秒以上いたら1件。
     まわり＝中心どうし 2 m 以内の人とロボット、動いていた＝1コマの速さ 0.1 m/秒より速い
   - 見た目：清掃のカートは灰色の箱＋押す青の職員（並べた図・動画の凡例に「清掃のカート」を足した）。警備の人は職員と同じ青
7. 撮る回（廊下だけ・0.6m/秒・種0）には補助者が歩いて運ぶ回が無いので、その静止画は撮っていない（種8 の回にはある）

判定：止めた（決めてほしいことあり）
```

#### agg157_out.txt（依頼157 の確かめのまとめの出力）

```text

== check157a_v06_hall_s0（廊下だけ）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.3 秒／実時間 31.1 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.118 m）／人の引き直し（180秒動けない）0／行き先の近くで止まって待った 10
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 0 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 0）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.6 分・最短 20.3・最長 216.4（10〜90%：52.2〜171.4）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.6 分・最短 20.3・最長 212.9（10〜90%：58.1〜172.5）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.2 分・最短 128.6・最長 287.3（10〜90%：129.9〜280.5）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.9 分・最短 66.4・最長 176.7（10〜90%：67.5〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.5 分・最短 17.4・最長 43.8（10〜90%：20.7〜37.9）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.4 分・最短 17.3・最長 43.8（10〜90%：20.6〜37.9）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 116・回の終わりに中にいた 0・入らなかった 64／いた時間 中央値 3.0 分・最短 0.6・最長 16.1（10〜90%：0.6〜13.2）
飛ばした行き先（人）： ほかの階の職員 出口:歩いて行けない 64 人
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 48・付き添い→トイレ（西） 33・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 70・外来の患者→トイレ（西） 79
   席を立ってから戻るまで 中央値 5.8 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 28 秒・最長 72 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 4 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 104・ほかの階の職員 エレベーターへ入る 102・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {'ほかの階の職員（出口）': 64} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 280 秒・1人 中央値 18.4 秒・最長 20.3 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 709 秒・1人 中央値 36.7 秒・最長 196.9 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 324 化学療法のトイレ 席を立つ 11304.25 秒・着く 11314 秒（歩き 9.8 秒）・戻る 11513.5 秒（帰り 9.7 秒）
   id 391 化学療法のトイレ 席を立つ 13486.45 秒・着く 13507.25 秒（歩き 20.8 秒）・戻る 13737.65 秒（帰り 21.5 秒）
   id 156 化学療法のトイレ 席を立つ 13588.9 秒・着く 13608 秒（歩き 19.1 秒）・戻る 13980.65 秒（帰り 18.9 秒）
   id 516 化学療法のトイレ 席を立つ 17740.75 秒・着く 17757.55 秒（歩き 16.8 秒）・戻る 18023.45 秒（帰り 16.7 秒）
   id 626 化学療法のトイレ 席を立つ 18247.55 秒・着く 18259.05 秒（歩き 11.5 秒）・戻る 18531 秒（帰り 11.4 秒）
   id 487 化学療法のトイレ 席を立つ 19098.4 秒・着く 19115.9 秒（歩き 17.5 秒）・戻る 19400.75 秒（帰り 17.4 秒）
   id 581 化学療法のトイレ 席を立つ 22021.15 秒・着く 22041.65 秒（歩き 20.5 秒）・戻る 22441.55 秒（帰り 20.5 秒）
   id 602 化学療法のトイレ 席を立つ 28642.85 秒・着く 28655.55 秒（歩き 12.7 秒）・戻る 29050.55 秒（帰り 12.6 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 11 人：
   清掃の人 3 人・いた時間 合計 20 秒（1人 最長 6.8 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   化学療法の患者 8 人・いた時間 合計 32 秒（1人 最長 4.5 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.00 秒
職員の番号ごと（型・人数・持ち場の所の外にいた秒 合計（1人 最長）／そのうち助け・用事の間／用事の回数 便・人が運ぶ回・ほか／便の数・人が運ぶ回の数）
    1 型1  13 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    2 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    3 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    4 型3  14 人  外   1279.9 秒（最長   314.3）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    5 型1   6 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    6 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 5・人が運ぶ回 0・ほか 0  便の数 5 → 合う
    7 型2   5 人  外    207.9 秒（最長   207.9）／助け 0.0・用事 190.3／便 9・人が運ぶ回 0・ほか 0  便の数 9 → 合う
    8 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 2・人が運ぶ回 0・ほか 0  便の数 2 → 合う
    9 型2   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0  staff_walks_all 0 回 → 合う
   10 型1  14 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 9・人が運ぶ回 0・ほか 0  便の数 9 → 合う
   11 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   12 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   13 型1  15 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 7・人が運ぶ回 0・ほか 0  便の数 7 → 合う
   14 型1   8 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   15 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   16 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   17 型1  16 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   18 型1  20 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   19 型4   2 人  外   1397.0 秒（最長   726.3）／助け 0.0・用事 1253.0／便 0・人が運ぶ回 0・ほか 38
   型1 で持ち場の所の外にいた番号： なし（全部 0 秒）
用事（errands157）： 便で積む 16・便で受け取る 16・正面玄関と総合受付の間を歩く 38 ／出すのが遅れた（空いている人がいなかった）最大 0.0 秒・終わりに出せていない 0・扉の内側に来る人がいない 0
職員の動き（staff_moves147 の種類）： 呼びに出る 386・便で積む 16・便で受け取る 16・正面玄関と総合受付の間を歩く 38・付き添う 47
ほかの階の職員の3つ： {'運ぶ人|出した': 54, '通り抜ける人|出していない': 64, '用事で来る医師|出した': 36, '通り抜ける人|出した': 26}
清掃・警備の人： {'清掃の人1': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '清掃の人2': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人1': {'sessions': 1, 'of': 1, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人2': {'sessions': 1, 'of': 1, 'patrols': 9, 'forbidden_s': 0, 'no_zone_s': 0}}
   入る・出る： 7:30 清掃の人1 入る：朝の清掃（外来の大廊下と待合）／7:30 清掃の人2 入る：朝の清掃（外来の大廊下と待合）／7:30 警備の人2 入る：正面玄関に立つ（見回りの合間）／7:55 清掃の人2 出た／7:55 清掃の人1 出た／8:00 警備の人1 入る：正面玄関に立つ／10:00 清掃の人1 入る：トイレの見回りとごみ集め 1 回目／10:00 清掃の人2 入る：トイレの見回りとごみ集め 1 回目／10:10 清掃の人1 出た／10:19 清掃の人2 出た／13:00 清掃の人1 入る：トイレの見回りとごみ集め 2 回目／13:00 清掃の人2 入る：トイレの見回りとごみ集め 2 回目／13:09 清掃の人1 出た／13:20 清掃の人2 出た／15:30 清掃の人1 入る：トイレの見回りとごみ集め 3 回目／15:30 清掃の人2 入る：トイレの見回りとごみ集め 3 回目／15:42 清掃の人1 出た／15:53 清掃の人2 出た／16:00 警備の人1 出た
   見回り： 8:00・9:00・10:00・11:00・12:00・13:00・14:00・15:00・16:00
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼155  目安(flow_estimate)  大廊下x70〜120  依頼155  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     0.7        1.1          1〜3               0.2        0.4       5.5   12.3    141.7       0.5           3.6              0.0          0.7   165.1
8:00〜8:30     0.8        1.5          2〜8               0.5        0.5      12.7   52.5    151.6       0.4           4.9              0.1          2.6   226.0
8:30〜9:00     0.5        1.1          2〜8               0.3        0.5      22.5   84.2    164.7       0.2           5.0              0.2          3.4   281.0
9:00〜9:30     1.0        1.7          2〜8               0.4        0.8      36.2   90.5    173.5       0.5           5.2              0.1          4.8   312.2
9:30〜10:00     1.0        1.6          2〜8               0.5        0.8      37.8  107.6    182.3       0.4           5.5              0.2          3.0   338.3
10:00〜10:30     0.7        1.4          2〜8               0.5        0.6      43.0  114.3    182.9       0.3           5.1              0.3          3.8   350.9
10:30〜11:00     1.2        1.5          2〜8               0.3        0.4      36.4  120.4    184.5       0.4           5.2              0.1          4.4   352.9
11:00〜11:30     0.7        1.3          1〜3               0.4        0.5      36.4  130.9    183.2       0.4           4.7              0.3          3.7   360.7
11:30〜12:00     0.8        1.1          1〜3               0.5        0.5      34.9  122.5    180.1       0.4           4.8              0.1          2.6   346.8
12:00〜12:30     0.4        1.4          1〜3               0.3        0.4      39.6  104.0    183.4       0.4           4.9              0.1          1.8   334.8
12:30〜13:00     0.6        0.7          1〜3               0.3        0.3      42.6   70.4    186.4       0.3           4.8              0.1          1.4   307.0
13:00〜13:30     0.9        1.5          1〜3               0.3        0.5      41.4   54.8    182.9       0.3           4.8              0.2          2.3   287.9
13:30〜14:00     0.7        1.2          1〜3               0.3        0.7      33.3   49.6    176.4       0.3           4.5              0.2          2.5   267.7
14:00〜14:30     0.6        0.9          1〜3               0.2        0.3      24.0   39.2    165.6       0.2           4.6              0.0          1.4   235.8
14:30〜15:00     0.3        1.0          1〜3               0.2        0.4      18.4   33.7    157.9       0.8           4.6              0.1          0.7   216.8
15:00〜15:30     0.7        1.2          1〜3               0.2        0.7      15.5   29.3    159.3       0.1           4.3              0.2          1.4   211.0
15:30〜16:00     0.5        0.7          1〜3               0.1        0.3      18.6   25.2    157.7       0.4           4.6              0.0          2.1   209.2
16:00〜16:30     0.4        1.0          1〜3               0.3        0.6      11.7   16.9    155.7       0.7           3.3              0.2          0.4   189.6
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 0.9 人・最大 4 人（依頼155 1.4・6／目安 2〜8）／空いている時間帯 平均 0.6 人・最大 4 人（依頼155 1.1・7／目安 1〜3）
1日の平均 0.69 人（依頼155 1.21 人）
午後（13:00〜）平均 0.6 人・最大 4 人（依頼155 1.1・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.32 人・最大 3 人（依頼155 0.50 人・4 人）
職員の廊下の人数：平均 0.39 人・最大 2 人
   （依頼155 平均 1.07 人・最大 6 人）
7:30〜8:00（清掃の間）：大廊下 x0〜70 平均 0.70 人・最大 3 人（依頼155 1.10 人・4 人）／x70〜120 平均 0.20 人・最大 2 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼157 ／ 依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 5／9／5／0／0／0 ／ 6／27／32／0／0／3 ／ 17／54／51／0／0／10 ／ 9／37／37／0／0／1 ／ 8／42／35／0／0／3 ／ 23／49／31／2／1／5   （合計 19 ／ 68 ／ 132 ／ 84 ／ 88 ／ 111）
     外来の大廊下: 0／2／0／0／0／0 ／ 1／7／5／0／0／1 ／ 5／12／7／0／0／2 ／ 1／5／4／0／0／0 ／ 1／7／2／0／0／0 ／ 21／48／28／2／1／5
     職員の廊下: 5／7／5／0／0／0 ／ 4／19／23／0／0／1 ／ 4／27／33／0／0／3 ／ 5／24／28／0／0／0 ／ 5／30／28／0／0／2 ／ 2／1／2／0／0／0
     部屋の中: 0／0／0／0／0／0 ／ 1／1／4／0／0／1 ／ 8／15／11／0／0／5 ／ 3／8／5／0／0／1 ／ 2／5／5／0／0／1 ／ 0／0／1／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／12／9／0／0／0 ／ 0／47／8／0／0／0 ／ 0／64／12／0／0／0 ／ 0／65／11／0／0／0 ／ 0／66／9／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 9 ／ 27 ／ 54 ／ 37 ／ 42 ／ 35
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 0 ／ 2
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 0 ／ 8 ／ 38 ／ 1 ／ 4 ／ 22
相手（依頼157・走っている間・ひやり＋よけさせられた＋止まりきれなかった 14 件）：職員の形（スタッフ）10 件（71%）・ストレッチャーと清掃のカートを足すと 11 件（79%）
相手（依頼155・走っている間・ひやり＋よけさせられた＋止まりきれなかった 62 件）：職員の形（スタッフ）59 件（95%）・ストレッチャーと清掃のカートを足すと 60 件（97%）
   相手 1 急に止まった（番号ごと）: なし 4・ほかの階の職員 運ぶ人 1
   相手 2 ひやり（番号ごと）: ほかの階の職員 運ぶ人 3・患者・付き添い・見舞い 外来の患者 2・職員 17 2・患者・付き添い・見舞い 化学療法の患者 1・ストレッチャー ストレッチャー 1
   相手 3 人がよけさせられた（番号ごと）: 病棟の看護師 病棟の看護師 2・ほかの階の職員 運ぶ人 2・ほかの階の職員 用事で来る医師 1
   職員の形の相手が何をしていたか（2・3・6）： ほかの階の職員 運ぶ人：出口へ 4・病棟の看護師 病棟の看護師：歩いている 2・職員 17：持ち場 2・ほかの階の職員 用事で来る医師：出口へ 1・ほかの階の職員 運ぶ人：とどまっている 1
   台の前で待っている間の相手： 職員 6：用事へ歩く：便で積む 10・職員 6：持ち場へ戻る 5・ほかの階の職員 用事で来る医師 3・患者・付き添い・見舞い 外来の患者 2・患者・付き添い・見舞い 付き添い 1
歩いている途中で 60 秒以上動けなかった人 6 件：
   #1 ほかの階の職員 用事で来る医師（スタッフ・157）7:48 〜 7:50（112.25 秒）(102.311,15.05) 救急の処置の場所／出口へ／終わり：動き出した
       まわり：職員 8（スタッフ・id 52）112.25 秒（止まっていた 112.25・動いていた 0）最も近い 1.018 m／持ち場
       まわり：ロボット （ロボット・id -1）112.25 秒（止まっていた 111.3・動いていた 0.95）最も近い 0.772 m／Idle
   #2 患者・付き添い・見舞い 外来の患者（車いす・225）8:08 〜 8:10（117.3 秒）(45.639,8.997) 正面玄関／歩いている（総合受付へ）／終わり：着いた・その場で待つ
       まわり：職員 19（スタッフ・id 141）117.3 秒（止まっていた 117.3・動いていた 0）最も近い 0.545 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 229）3.6 秒（止まっていた 0・動いていた 3.6）最も近い 0.567 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 228）3.15 秒（止まっていた 0・動いていた 3.15）最も近い 0.599 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 230）3.05 秒（止まっていた 0・動いていた 3.05）最も近い 0.766 m／歩いている
   #3 患者・付き添い・見舞い 外来の患者（杖の人・234）8:12 〜 8:13（109.75 秒）(38.891,17.7) 総合受付・会計の待合／歩いている（総合受付へ）／終わり：動き出した
       まわり：職員 17（スタッフ・id 107）109.75 秒（止まっていた 109.75・動いていた 0）最も近い 1.63 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 232）109.75 秒（止まっていた 109.7・動いていた 0.05）最も近い 0.45 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 231）107.4 秒（止まっていた 105.65・動いていた 1.75）最も近い 0.449 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 241）6.75 秒（止まっていた 6.5・動いていた 0.25）最も近い 1.937 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 237）3.75 秒（止まっていた 0・動いていた 3.75）最も近い 0.754 m／歩いている（総合受付へ）
   #4 患者・付き添い・見舞い 付き添い（杖の人・415）9:24 〜 9:25（98.55 秒）(40.507,17.72) 総合受付・会計の待合／歩いている／終わり：動き出した
       まわり：職員 17（スタッフ・id 106）98.55 秒（止まっていた 98.55・動いていた 0）最も近い 1.733 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 414）98.55 秒（止まっていた 97.1・動いていた 1.45）最も近い 0.444 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 416）60.8 秒（止まっていた 59.3・動いていた 1.5）最も近い 0.682 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 外来の患者（杖の人・id 409）36.1 秒（止まっていた 30.85・動いていた 5.25）最も近い 0.913 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 418）7.9 秒（止まっていた 0.05・動いていた 7.85）最も近い 0.446 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 417）3.8 秒（止まっていた 0・動いていた 3.8）最も近い 0.501 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 410）2.3 秒（止まっていた 0・動いていた 2.3）最も近い 1.51 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 199）2.1 秒（止まっていた 0・動いていた 2.1）最も近い 1.59 m／出口へ
   #5 患者・付き添い・見舞い 外来の患者（車いす・435）9:51 〜 9:52（74.75 秒）(84.913,34.093) ほかの外来の中待合／歩いている（会計の待合へ）／終わり：動き出した
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 203）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 1.686 m／席待ち
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 224）74.75 秒（止まっていた 73.85・動いていた 0.9）最も近い 0.545 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 306）74.75 秒（止まっていた 73.8・動いていた 0.95）最も近い 0.548 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 374）74.75 秒（止まっていた 71.9・動いていた 2.85）最も近い 1.004 m／席待ち
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 375）74.75 秒（止まっていた 71.9・動いていた 2.85）最も近い 0.814 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 399）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 0.98 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 424）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 1.808 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 447）4.2 秒（止まっていた 0・動いていた 4.2）最も近い 0.594 m／歩いている（会計の待合へ）
       まわり：職員 4（スタッフ・id 35）3.8 秒（止まっていた 0.1・動いていた 3.7）最も近い 1.139 m／中待合へ呼びに出る
   #6 患者・付き添い・見舞い 外来の患者（杖の人・251）9:54 〜 9:56（116.7 秒）(69.632,34.128) ほかの外来の中待合／歩いている（会計の待合へ）／終わり：着いた・その場で待つ
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 343）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.712 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 344）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.421 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 367）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.791 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 379）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.884 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 397）116.7 秒（止まっていた 115.65・動いていた 1.05）最も近い 1.387 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 398）116.7 秒（止まっていた 116.65・動いていた 0.05）最も近い 1.979 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 462）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.574 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 466）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.476 m／席待ち
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 467）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.928 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 477）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.691 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 478）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.175 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 480）116.7 秒（止まっていた 116.25・動いていた 0.45）最も近い 0.691 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 481）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.47 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 484）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.235 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 485）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.944 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 423）10.75 秒（止まっていた 4.85・動いていた 5.9）最も近い 1.124 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 422）9.4 秒（止まっていた 4.9・動いていた 4.5）最も近い 1.157 m／看護師待ち
       まわり：職員 4（スタッフ・id 32）6.5 秒（止まっていた 0.1・動いていた 6.4）最も近い 1.237 m／中待合へ呼びに出る
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 371）6.05 秒（止まっていた 0・動いていた 6.05）最も近い 1.073 m／歩いている（生理検査の待合へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 372）4.75 秒（止まっていた 0・動いていた 4.75）最も近い 1.07 m／歩いている
病棟の患者が 救急の待合 にいた時間：17 人・中央値 18.4 秒・最長 20.3 秒
病棟の患者が 救急の処置の場所 にいた時間：17 人・中央値 36.7 秒・最長 196.9 秒
7:30〜8:00 に出た緑の便 1 便の問題（走っている間）：0／0／1／0／0／0（合計 1）
   区間ごとの数（全部の種類）： 待ち 21・行き 5・移る 4・帰り 10
   相手 1 急に止まった: なし 4・スタッフ 1
   相手 2 ひやり: スタッフ 5・歩く患者・付き添い 3・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 5

== check157c_v06_switch_s0（時間で切替）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31629.9 秒／実時間 31.1 分
便 16（走った 16・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.109 m）／人の引き直し（180秒動けない）0／行き先の近くで止まって待った 10
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 0 回・看護師が呼びに出た 386 回（看護師なし 0・間に合わない 0）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 375・回の終わりに中にいた 15・入らなかった 0／いた時間 中央値 103.6 分・最短 20.3・最長 216.5（10〜90%：52.2〜171.3）
付き添い 192 人：出た 182・回の終わりに中にいた 10・入らなかった 0／いた時間 中央値 103.6 分・最短 20.3・最長 212.9（10〜90%：58.1〜172.6）
化学療法の患者 20 人：出た 17・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 188.3 分・最短 128.6・最長 287.3（10〜90%：129.7〜280.5）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 84.9 分・最短 66.4・最長 176.7（10〜90%：67.5〜176.6）
病棟の患者 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.5 分・最短 17.4・最長 43.7（10〜90%：20.6〜37.9）
病棟の看護師 54 人：出た 52・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 30.4 分・最短 17.4・最長 43.7（10〜90%：20.5〜37.9）
見舞いの人 105 人：出た 104・回の終わりに中にいた 1・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 116・回の終わりに中にいた 0・入らなかった 64／いた時間 中央値 3.0 分・最短 0.6・最長 16.1（10〜90%：0.6〜13.2）
飛ばした行き先（人）： ほかの階の職員 出口:歩いて行けない 64 人
初診・紹介 34 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 150・付き添い 83・化学療法の患者 8／行った人 付き添い→トイレ（東） 49・付き添い→トイレ（西） 32・化学療法の患者→化学療法のトイレ 8・外来の患者→トイレ（東） 70・外来の患者→トイレ（西） 79
   席を立ってから戻るまで 中央値 5.8 分（最短 3.5・最長 8.6）／席からトイレまで歩いた時間 中央値 27 秒・最長 72 秒
   どこで待っている間に行ったか： 中待合 166・会計の待合 55・点滴 8・内科の処置室 5・総合受付の待合 4
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 4 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 104・ほかの階の職員 エレベーターへ入る 102・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 52・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 52・見舞いの人 エレベーターから出る 53・見舞いの人 エレベーターへ入る 52
   病棟の患者の形： 歩く患者・付き添い 28・車いす 26
出さなかった人（行き先へ歩いて行けない）： {'ほかの階の職員（出口）': 64} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 281 秒・1人 中央値 18.4 秒・最長 20.3 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 17 人（病棟の患者 17）／そこにいた時間 合計 708 秒・1人 中央値 36.7 秒・最長 195.1 秒
病棟の看護師：検査の所の中のそばに立った 91・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 47・付き添った 47・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 47 人・着いた 46 人
化学療法の患者 20 人のうちトイレに行くと決まった 8 人：行き先 化学療法のトイレ 8・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 324 化学療法のトイレ 席を立つ 11304.25 秒・着く 11314 秒（歩き 9.8 秒）・戻る 11513.5 秒（帰り 9.7 秒）
   id 391 化学療法のトイレ 席を立つ 13486.65 秒・着く 13507.5 秒（歩き 20.9 秒）・戻る 13737.95 秒（帰り 21.5 秒）
   id 156 化学療法のトイレ 席を立つ 13588.9 秒・着く 13608 秒（歩き 19.1 秒）・戻る 13980.65 秒（帰り 18.9 秒）
   id 516 化学療法のトイレ 席を立つ 17740.85 秒・着く 17757.65 秒（歩き 16.8 秒）・戻る 18023.5 秒（帰り 16.7 秒）
   id 626 化学療法のトイレ 席を立つ 18239.7 秒・着く 18257.55 秒（歩き 17.8 秒）・戻る 18535.85 秒（帰り 17.7 秒）
   id 487 化学療法のトイレ 席を立つ 19098.45 秒・着く 19115.95 秒（歩き 17.5 秒）・戻る 19400.8 秒（帰り 17.4 秒）
   id 581 化学療法のトイレ 席を立つ 22018.2 秒・着く 22037 秒（歩き 18.8 秒）・戻る 22435.1 秒（帰り 18.7 秒）
   id 602 化学療法のトイレ 席を立つ 28649.2 秒・着く 28668.4 秒（歩き 19.2 秒）・戻る 29070.65 秒（帰り 19.9 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 11 人：
   清掃の人 3 人・いた時間 合計 20 秒（1人 最長 6.8 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   化学療法の患者 8 人・いた時間 合計 32 秒（1人 最長 4.5 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.00 秒
職員の番号ごと（型・人数・持ち場の所の外にいた秒 合計（1人 最長）／そのうち助け・用事の間／用事の回数 便・人が運ぶ回・ほか／便の数・人が運ぶ回の数）
    1 型1  13 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    2 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    3 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    4 型3  14 人  外   1312.0 秒（最長   322.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    5 型1   6 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    6 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 5・人が運ぶ回 0・ほか 0  便の数 5 → 合う
    7 型2   5 人  外    207.9 秒（最長   207.9）／助け 0.0・用事 190.3／便 9・人が運ぶ回 0・ほか 0  便の数 9 → 合う
    8 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 2・人が運ぶ回 0・ほか 0  便の数 2 → 合う
    9 型2   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0  staff_walks_all 0 回 → 合う
   10 型1  14 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 9・人が運ぶ回 0・ほか 0  便の数 9 → 合う
   11 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   12 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   13 型1  15 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 7・人が運ぶ回 0・ほか 0  便の数 7 → 合う
   14 型1   8 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   15 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   16 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   17 型1  16 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   18 型1  20 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   19 型4   2 人  外   1397.0 秒（最長   726.2）／助け 0.0・用事 1252.9／便 0・人が運ぶ回 0・ほか 38
   型1 で持ち場の所の外にいた番号： なし（全部 0 秒）
用事（errands157）： 便で積む 16・便で受け取る 16・正面玄関と総合受付の間を歩く 38 ／出すのが遅れた（空いている人がいなかった）最大 0.0 秒・終わりに出せていない 0・扉の内側に来る人がいない 0
職員の動き（staff_moves147 の種類）： 呼びに出る 386・便で積む 16・便で受け取る 16・正面玄関と総合受付の間を歩く 38・付き添う 47
ほかの階の職員の3つ： {'運ぶ人|出した': 54, '通り抜ける人|出していない': 64, '用事で来る医師|出した': 36, '通り抜ける人|出した': 26}
清掃・警備の人： {'清掃の人1': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '清掃の人2': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人1': {'sessions': 1, 'of': 1, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人2': {'sessions': 1, 'of': 1, 'patrols': 9, 'forbidden_s': 0, 'no_zone_s': 0}}
   入る・出る： 7:30 清掃の人1 入る：朝の清掃（外来の大廊下と待合）／7:30 清掃の人2 入る：朝の清掃（外来の大廊下と待合）／7:30 警備の人2 入る：正面玄関に立つ（見回りの合間）／7:55 清掃の人2 出た／7:55 清掃の人1 出た／8:00 警備の人1 入る：正面玄関に立つ／10:00 清掃の人1 入る：トイレの見回りとごみ集め 1 回目／10:00 清掃の人2 入る：トイレの見回りとごみ集め 1 回目／10:10 清掃の人1 出た／10:19 清掃の人2 出た／13:00 清掃の人1 入る：トイレの見回りとごみ集め 2 回目／13:00 清掃の人2 入る：トイレの見回りとごみ集め 2 回目／13:09 清掃の人1 出た／13:20 清掃の人2 出た／15:30 清掃の人1 入る：トイレの見回りとごみ集め 3 回目／15:30 清掃の人2 入る：トイレの見回りとごみ集め 3 回目／15:42 清掃の人1 出た／15:52 清掃の人2 出た／16:00 警備の人1 出た
   見回り： 8:00・9:00・10:00・11:00・12:00・13:00・14:00・15:00・16:00
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼155  目安(flow_estimate)  大廊下x70〜120  依頼155  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     0.7        1.1          1〜3               0.2        0.4       5.5   12.3    141.7       0.5           3.6              0.0          0.7   165.1
8:00〜8:30     0.8        1.5          2〜8               0.5        0.5      12.7   52.5    151.6       0.4           4.9              0.1          2.6   226.0
8:30〜9:00     0.5        1.1          2〜8               0.3        0.5      22.5   84.2    164.7       0.2           5.0              0.2          3.4   281.0
9:00〜9:30     1.0        1.7          2〜8               0.4        0.8      36.2   90.5    173.5       0.5           5.2              0.1          4.8   312.2
9:30〜10:00     1.0        1.6          2〜8               0.5        0.8      37.8  107.6    182.3       0.4           5.5              0.2          3.0   338.3
10:00〜10:30     0.7        1.4          2〜8               0.5        0.6      43.0  114.3    182.9       0.3           5.1              0.3          3.8   350.9
10:30〜11:00     1.2        1.4          2〜8               0.3        0.3      36.3  120.6    184.4       0.4           5.2              0.1          4.4   352.9
11:00〜11:30     0.7        1.3          1〜3               0.4        0.4      36.4  131.1    183.1       0.4           4.7              0.3          3.7   360.8
11:30〜12:00     0.7        1.3          1〜3               0.5        0.5      34.9  122.4    180.2       0.3           5.0              0.2          2.7   346.9
12:00〜12:30     0.6        1.0          1〜3               0.3        0.6      39.6  103.8    183.8       0.4           4.8              0.1          1.8   335.1
12:30〜13:00     0.7        1.2          1〜3               0.2        0.3      42.6   71.0    185.7       0.3           4.6              0.2          1.4   306.9
13:00〜13:30     1.2        1.1          1〜3               0.2        0.5      41.5   54.7    182.9       0.2           5.1              0.0          2.3   288.1
13:30〜14:00     0.7        1.2          1〜3               0.3        0.5      33.3   50.0    175.9       0.3           4.6              0.2          2.5   267.8
14:00〜14:30     0.5        1.7          1〜3               0.2        0.4      24.1   39.4    165.4       0.1           4.6              0.0          1.4   235.8
14:30〜15:00     0.3        1.1          1〜3               0.3        0.7      18.1   33.7    158.0       0.8           4.7              0.1          0.7   216.7
15:00〜15:30     0.6        1.2          1〜3               0.3        0.3      15.6   29.2    159.3       0.2           4.1              0.2          1.4   210.9
15:30〜16:00     0.5        0.8          1〜3               0.1        0.3      18.7   25.4    157.5       0.4           4.4              0.0          2.1   209.2
16:00〜16:30     0.5        1.0          1〜3               0.3        0.5      11.5   17.1    155.6       0.6           3.5              0.2          0.4   189.7
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 0.9 人・最大 4 人（依頼155 1.4・6／目安 2〜8）／空いている時間帯 平均 0.6 人・最大 3 人（依頼155 1.2・6／目安 1〜3）
1日の平均 0.71 人（依頼155 1.26 人）
午後（13:00〜）平均 0.6 人・最大 3 人（依頼155 1.2・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.32 人・最大 3 人（依頼155 0.48 人・4 人）
職員の廊下の人数：平均 0.38 人・最大 2 人
   （依頼155 平均 1.08 人・最大 6 人）
7:30〜8:00（清掃の間）：大廊下 x0〜70 平均 0.70 人・最大 3 人（依頼155 1.10 人・4 人）／x70〜120 平均 0.20 人・最大 2 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼157 ／ 依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 3／8／5／0／0／0 ／ 12／42／42／0／1／7 ／ 11／52／54／0／0／5 ／ 15／39／52／0／0／4 ／ 14／49／51／0／0／5 ／ 25／60／16／1／1／4   （合計 16 ／ 104 ／ 122 ／ 110 ／ 119 ／ 107）
     外来の大廊下: 3／4／0／0／0／0 ／ 4／11／7／0／1／2 ／ 4／19／11／0／0／2 ／ 5／8／7／0／0／0 ／ 3／10／6／0／0／2 ／ 23／49／13／0／1／3
     職員の廊下: 0／4／5／0／0／0 ／ 6／28／29／0／0／3 ／ 3／21／36／0／0／1 ／ 8／24／40／0／0／1 ／ 7／35／38／0／0／2 ／ 2／11／3／1／0／1
     部屋の中: 0／0／0／0／0／0 ／ 2／3／6／0／0／2 ／ 4／12／7／0／0／2 ／ 2／7／5／0／0／3 ／ 4／4／7／0／0／1 ／ 0／0／0／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／12／8／0／0／0 ／ 0／40／7／0／0／0 ／ 0／57／12／0／0／0 ／ 0／58／11／0／0／0 ／ 0／57／5／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 8 ／ 42 ／ 52 ／ 39 ／ 49 ／ 52
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 0 ／ 1
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 0 ／ 14 ／ 27 ／ 11 ／ 22 ／ 48
相手（依頼157・走っている間・ひやり＋よけさせられた＋止まりきれなかった 13 件）：職員の形（スタッフ）10 件（77%）・ストレッチャーと清掃のカートを足すと 11 件（85%）
相手（依頼155・走っている間・ひやり＋よけさせられた＋止まりきれなかった 91 件）：職員の形（スタッフ）84 件（92%）・ストレッチャーと清掃のカートを足すと 85 件（93%）
   相手 1 急に止まった（番号ごと）: なし 3
   相手 2 ひやり（番号ごと）: 患者・付き添い・見舞い 付き添い 2・職員 17 2・ほかの階の職員 運ぶ人 2・ほかの階の職員 用事で来る医師 1・ストレッチャー ストレッチャー 1
   相手 3 人がよけさせられた（番号ごと）: 病棟の看護師 病棟の看護師 2・ほかの階の職員 運ぶ人 2・ほかの階の職員 用事で来る医師 1
   職員の形の相手が何をしていたか（2・3・6）： ほかの階の職員 運ぶ人：出口へ 4・ほかの階の職員 用事で来る医師：出口へ 2・病棟の看護師 病棟の看護師：歩いている 2・職員 17：持ち場 2
   台の前で待っている間の相手： 職員 6：用事へ歩く：便で積む 10・職員 6：持ち場へ戻る 5・ほかの階の職員 用事で来る医師 3・患者・付き添い・見舞い 付き添い 1・患者・付き添い・見舞い 外来の患者 1
歩いている途中で 60 秒以上動けなかった人 7 件：
   #1 ほかの階の職員 用事で来る医師（スタッフ・157）7:48 〜 7:50（112.25 秒）(102.311,15.05) 救急の処置の場所／出口へ／終わり：動き出した
       まわり：職員 8（スタッフ・id 52）112.25 秒（止まっていた 112.25・動いていた 0）最も近い 1.018 m／持ち場
       まわり：ロボット （ロボット・id -1）112.25 秒（止まっていた 111.3・動いていた 0.95）最も近い 0.772 m／Idle
   #2 患者・付き添い・見舞い 外来の患者（車いす・225）8:08 〜 8:10（117.3 秒）(45.639,8.997) 正面玄関／歩いている（総合受付へ）／終わり：着いた・その場で待つ
       まわり：職員 19（スタッフ・id 141）117.3 秒（止まっていた 117.3・動いていた 0）最も近い 0.545 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 229）3.6 秒（止まっていた 0・動いていた 3.6）最も近い 0.567 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 228）3.15 秒（止まっていた 0・動いていた 3.15）最も近い 0.599 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 230）3.05 秒（止まっていた 0・動いていた 3.05）最も近い 0.766 m／歩いている
   #3 患者・付き添い・見舞い 外来の患者（杖の人・234）8:12 〜 8:13（109.75 秒）(38.891,17.7) 総合受付・会計の待合／歩いている（総合受付へ）／終わり：動き出した
       まわり：職員 17（スタッフ・id 107）109.75 秒（止まっていた 109.75・動いていた 0）最も近い 1.63 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 232）109.75 秒（止まっていた 109.7・動いていた 0.05）最も近い 0.45 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 231）107.4 秒（止まっていた 105.65・動いていた 1.75）最も近い 0.449 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 241）6.75 秒（止まっていた 6.5・動いていた 0.25）最も近い 1.937 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 237）3.75 秒（止まっていた 0・動いていた 3.75）最も近い 0.754 m／歩いている（総合受付へ）
   #4 患者・付き添い・見舞い 付き添い（杖の人・415）9:24 〜 9:25（98.55 秒）(40.507,17.72) 総合受付・会計の待合／歩いている／終わり：動き出した
       まわり：職員 17（スタッフ・id 106）98.55 秒（止まっていた 98.55・動いていた 0）最も近い 1.733 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 414）98.55 秒（止まっていた 97.1・動いていた 1.45）最も近い 0.444 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 416）60.8 秒（止まっていた 59.3・動いていた 1.5）最も近い 0.682 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 外来の患者（杖の人・id 409）36.1 秒（止まっていた 30.85・動いていた 5.25）最も近い 0.913 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 418）7.9 秒（止まっていた 0.05・動いていた 7.85）最も近い 0.446 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 417）3.8 秒（止まっていた 0・動いていた 3.8）最も近い 0.501 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 410）2.3 秒（止まっていた 0・動いていた 2.3）最も近い 1.51 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 199）2.1 秒（止まっていた 0・動いていた 2.1）最も近い 1.59 m／出口へ
   #5 患者・付き添い・見舞い 外来の患者（車いす・435）9:51 〜 9:52（74.75 秒）(84.913,34.093) ほかの外来の中待合／歩いている（会計の待合へ）／終わり：動き出した
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 203）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 1.686 m／席待ち
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 224）74.75 秒（止まっていた 73.85・動いていた 0.9）最も近い 0.545 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 306）74.75 秒（止まっていた 73.8・動いていた 0.95）最も近い 0.548 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 374）74.75 秒（止まっていた 71.9・動いていた 2.85）最も近い 1.004 m／席待ち
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 375）74.75 秒（止まっていた 71.9・動いていた 2.85）最も近い 0.814 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 399）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 0.98 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 424）74.75 秒（止まっていた 74.75・動いていた 0）最も近い 1.808 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 447）4.2 秒（止まっていた 0・動いていた 4.2）最も近い 0.594 m／歩いている（会計の待合へ）
       まわり：職員 4（スタッフ・id 35）3.8 秒（止まっていた 0.1・動いていた 3.7）最も近い 1.139 m／中待合へ呼びに出る
   #6 患者・付き添い・見舞い 外来の患者（杖の人・251）9:54 〜 9:56（116.7 秒）(69.632,34.128) ほかの外来の中待合／歩いている（会計の待合へ）／終わり：着いた・その場で待つ
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 343）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.712 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 344）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.421 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 367）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.791 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 379）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.884 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 397）116.7 秒（止まっていた 115.65・動いていた 1.05）最も近い 1.387 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 398）116.7 秒（止まっていた 116.65・動いていた 0.05）最も近い 1.979 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 462）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.574 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 466）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.476 m／席待ち
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 467）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.928 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 477）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.691 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 478）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.175 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 480）116.7 秒（止まっていた 116.25・動いていた 0.45）最も近い 0.691 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 481）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.47 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 484）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 1.235 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 485）116.7 秒（止まっていた 116.7・動いていた 0）最も近い 0.944 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 423）10.75 秒（止まっていた 4.85・動いていた 5.9）最も近い 1.124 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 422）9.4 秒（止まっていた 4.9・動いていた 4.5）最も近い 1.157 m／看護師待ち
       まわり：職員 4（スタッフ・id 32）6.5 秒（止まっていた 0.1・動いていた 6.4）最も近い 1.237 m／中待合へ呼びに出る
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 371）6.05 秒（止まっていた 0・動いていた 6.05）最も近い 1.073 m／歩いている（生理検査の待合へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 372）4.75 秒（止まっていた 0・動いていた 4.75）最も近い 1.07 m／歩いている
   #7 患者・付き添い・見舞い 外来の患者（杖の人・814）13:02 〜 13:04（120.9 秒）(43.033,17.7) 総合受付・会計の待合／歩いている（総合受付へ）／終わり：着いた・その場で待つ
       まわり：職員 17（スタッフ・id 109）120.9 秒（止まっていた 120.9・動いていた 0）最も近い 1.565 m／持ち場
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 815）120.9 秒（止まっていた 120.6・動いていた 0.3）最も近い 0.444 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 811）5.6 秒（止まっていた 2.75・動いていた 2.85）最も近い 0.742 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 810）4.2 秒（止まっていた 2.75・動いていた 1.45）最も近い 0.548 m／とどまっている（総合受付）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 820）4.2 秒（止まっていた 0・動いていた 4.2）最も近い 0.433 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 821）4.15 秒（止まっていた 0・動いていた 4.15）最も近い 0.445 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 817）4 秒（止まっていた 0・動いていた 4）最も近い 0.461 m／歩いている（総合受付へ）
       まわり：職員 17（スタッフ・id 106）2.95 秒（止まっていた 2.95・動いていた 0）最も近い 1.97 m／持ち場
病棟の患者が 救急の待合 にいた時間：17 人・中央値 18.4 秒・最長 20.3 秒
病棟の患者が 救急の処置の場所 にいた時間：17 人・中央値 36.7 秒・最長 195.1 秒
7:30〜8:00 に出た緑の便 1 便の問題（走っている間）：0／0／1／0／0／0（合計 1）
   区間ごとの数（全部の種類）： 待ち 20・行き 3・移る 8・帰り 5
   相手 1 急に止まった: なし 3
   相手 2 ひやり: スタッフ 5・歩く患者・付き添い 2・ストレッチャー 1
   相手 3 人がよけさせられた: スタッフ 5

== check157s8_v06_hall_s8（廊下だけ）status completed／回の終わり 32400.0 秒（16:30）／最後の便が戻った 31068.5 秒／実時間 30.1 分
便 15（走った 15・途中 0・走れなかった 0）／移る 5（終えた 5）／出るのが遅れた 平均 0.0 秒・最大 0.0 秒
瞬間移動 ロボット 0（1コマ最大 0.030 m）・人 0（最大 0.082 m）／人の引き直し（180秒動けない）1／行き先の近くで止まって待った 9
立ち往生 0: 
助け 0: 
ロボットの入らない所に中心が入った時間 0.00 秒／どの所にも入っていない時間 0.00 秒
人が access で入れない所に入った時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
どの所にも入っていない時間（役割ごと）： 外来の患者 0.00 秒・化学療法の患者 0.00 秒・救急の患者 0.00 秒・看護師 0.00 秒・医師 0.00 秒・薬剤師 0.00 秒・検査技師 0.00 秒・事務 0.00 秒
職員 141 人／持ち場から動いた 0 回・看護師が呼びに出た 382 回（看護師なし 0・間に合わない 1）
席 465（使えない 0）・机などの横の点 1108・診察室 13／所 55 枚・区画 25／壁の箱 150・家具の箱 78
飛ばした行き先（理由）： {}
外来の患者 390 人：出た 373・回の終わりに中にいた 17・入らなかった 0／いた時間 中央値 105.5 分・最短 26.7・最長 273.5（10〜90%：49.2〜169.8）
付き添い 181 人：出た 172・回の終わりに中にいた 9・入らなかった 0／いた時間 中央値 98.4 分・最短 26.7・最長 273.5（10〜90%：47.0〜168.6）
化学療法の患者 20 人：出た 18・回の終わりに中にいた 2・入らなかった 0／いた時間 中央値 205.5 分・最短 124.3・最長 291.7（10〜90%：144.3〜275.7）
救急の患者 18 人：出た 14・回の終わりに中にいた 4・入らなかった 0／いた時間 中央値 97.3 分・最短 68.2・最長 182.1（10〜90%：74.1〜177.6）
病棟の患者 54 人：出た 51・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 27.7 分・最短 17.8・最長 47.5（10〜90%：20.1〜37.5）
病棟の看護師 54 人：出た 51・回の終わりに中にいた 3・入らなかった 0／いた時間 中央値 27.4 分・最短 17.9・最長 47.5（10〜90%：20.0〜37.5）
見舞いの人 105 人：出た 105・回の終わりに中にいた 0・入らなかった 0／いた時間 中央値 0.5 分・最短 0.4・最長 0.6（10〜90%：0.5〜0.6）
ほかの階の職員 180 人：出た 105・回の終わりに中にいた 1・入らなかった 74／いた時間 中央値 3.0 分・最短 0.6・最長 17.5（10〜90%：0.6〜14.0）
飛ばした行き先（人）： ほかの階の職員 出口:歩いて行けない 74 人
初診・紹介 29 人（外来の患者 390 人）
トイレ：行くと決めた人 外来の患者 193・付き添い 65・化学療法の患者 9／行った人 付き添い→トイレ（東） 36・付き添い→トイレ（西） 28・化学療法の患者→化学療法のトイレ 9・外来の患者→トイレ（東） 95・外来の患者→トイレ（西） 97
   席を立ってから戻るまで 中央値 5.9 分（最短 3.6・最長 8.4）／席からトイレまで歩いた時間 中央値 27 秒・最長 71 秒
   どこで待っている間に行ったか： 中待合 186・会計の待合 55・内科の処置室 10・点滴 9・総合受付の待合 5
   行く時が来ないまま回が終わった 2・行けるトイレがない 0・戻るのを待って次へ行くのが遅れた 1 回（計 6 秒）
エレベーター（種類ごと）： ほかの階の職員 エレベーターから出る 94・ほかの階の職員 エレベーターへ入る 101・病棟の患者 エレベーターから出る 54・病棟の患者 エレベーターへ入る 51・病棟の看護師 エレベーターから出る 54・病棟の看護師 エレベーターへ入る 51・見舞いの人 エレベーターから出る 46・見舞いの人 エレベーターへ入る 59
   病棟の患者の形： 歩く患者・付き添い 24・車いす 30
出さなかった人（行き先へ歩いて行けない）： {'ほかの階の職員（出口）': 74} ／救急の患者 0 人（正面玄関から行ける 1）
救急の待合 を通り抜けた外来の患者の役割の人 24 人（病棟の患者 24）／そこにいた時間 合計 362 秒・1人 中央値 14.6 秒・最長 18.6 秒
救急の処置の場所 を通り抜けた外来の患者の役割の人 24 人（病棟の患者 24）／そこにいた時間 合計 755 秒・1人 中央値 29.9 秒・最長 40.9 秒
病棟の看護師：検査の所の中のそばに立った 84・所の中の点 0・大廊下の端で待った 0／化学療法のトイレへ行けず西・東にした 0
案A：付き添いを呼んだ 40・付き添った 40・間に合わない 0・時間切れ 0／付き添いなしで裏の通路にいた患者 0.0 秒
   処置・検査室・内視鏡室の行き先がある外来の患者 40 人・着いた 39 人
化学療法の患者 20 人のうちトイレに行くと決まった 9 人：行き先 化学療法のトイレ 9・トイレ（西） 0・トイレ（東） 0・行けない 0・（まだ・行く時が来ない） 0／化学療法のトイレへ行けず西・東にした 0 人
   id 318 化学療法のトイレ 席を立つ 7890.35 秒・着く 7914 秒（歩き 23.6 秒）・戻る 8122.4 秒（帰り 24.4 秒）
   id 398 化学療法のトイレ 席を立つ 13317.5 秒・着く 13334.95 秒（歩き 17.5 秒）・戻る 13706.75 秒（帰り 17.3 秒）
   id 448 化学療法のトイレ 席を立つ 20430.85 秒・着く 20451.5 秒（歩き 20.7 秒）・戻る 20707.65 秒（帰り 20.5 秒）
   id 629 化学療法のトイレ 席を立つ 20488.2 秒・着く 20503.2 秒（歩き 15.0 秒）・戻る 20787.35 秒（帰り 15.4 秒）
   id 384 化学療法のトイレ 席を立つ 20609.65 秒・着く 20627.3 秒（歩き 17.6 秒）・戻る 20877 秒（帰り 17.3 秒）
   id 583 化学療法のトイレ 席を立つ 20817.8 秒・着く 20836.6 秒（歩き 18.8 秒）・戻る 21093.35 秒（帰り 18.6 秒）
   id 555 化学療法のトイレ 席を立つ 23047.35 秒・着く 23068.2 秒（歩き 20.9 秒）・戻る 23317 秒（帰り 21.8 秒）
   id 589 化学療法のトイレ 席を立つ 24986.15 秒・着く 25001.95 秒（歩き 15.8 秒）・戻る 25243.4 秒（帰り 15.5 秒）
   id 584 化学療法のトイレ 席を立つ 26488.45 秒・着く 26511.65 秒（歩き 23.2 秒）・戻る 26766.8 秒（帰り 23.9 秒）
トイレの前の通り道（x114〜115.5・z53〜60）にいた人 12 人：
   化学療法の患者 9 人・いた時間 合計 39 秒（1人 最長 4.6 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   清掃の人 3 人・いた時間 合計 20 秒（1人 最長 6.8 秒）・歩いている途中で止まっていた 合計 0.00 秒・続けて止まった最長 0.00 秒
   続けて止まった最長（全員）0.00 秒
職員の番号ごと（型・人数・持ち場の所の外にいた秒 合計（1人 最長）／そのうち助け・用事の間／用事の回数 便・人が運ぶ回・ほか／便の数・人が運ぶ回の数）
    1 型1  13 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    2 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    3 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    4 型3  14 人  外    997.7 秒（最長   321.3）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    5 型1   6 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
    6 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 8・人が運ぶ回 0・ほか 0  便の数 8 → 合う
    7 型2   5 人  外    138.0 秒（最長   138.0）／助け 0.0・用事 126.6／便 6・人が運ぶ回 0・ほか 0  便の数 6 → 合う
    8 型2   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 1・人が運ぶ回 0・ほか 0  便の数 1 → 合う
    9 型2   2 人  外    333.6 秒（最長   284.3）／助け 0.0・用事 242.1／便 0・人が運ぶ回 2・ほか 0  staff_walks_all 2 回 → 合う
   10 型1  14 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 6・人が運ぶ回 1・ほか 0  便の数 6 → 合う
   11 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   12 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   13 型1  15 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 9・人が運ぶ回 1・ほか 0  便の数 9 → 合う
   14 型1   8 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   15 型1   4 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   16 型1   2 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   17 型1  16 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   18 型1  20 人  外      0.0 秒（最長     0.0）／助け 0.0・用事 0.0／便 0・人が運ぶ回 0・ほか 0
   19 型4   2 人  外   1546.2 秒（最長   947.2）／助け 0.0・用事 1386.5／便 0・人が運ぶ回 0・ほか 42
   型1 で持ち場の所の外にいた番号： なし（全部 0 秒）
用事（errands157）： 便で積む 15・人が運ぶ回で歩いて運ぶ 2・人が運ぶ回で受け取る 1・便で受け取る 15・正面玄関と総合受付の間を歩く 42・人が運ぶ回で渡す 1 ／出すのが遅れた（空いている人がいなかった）最大 0.0 秒・終わりに出せていない 0・扉の内側に来る人がいない 0
   人が運ぶ回で歩いて運ぶ（1 回目・green） 番号 9 職員 54：救急室の処置室→検査部の検体受付 出す 326.4 秒・着く 329.7 秒・終わる 387.15 秒 
   人が運ぶ回で受け取る（1 回目） 番号 13 職員 76：検査部の検体受付で渡す 出す 349.7 秒・着く 355.2 秒・終わる 387.15 秒 
   人が運ぶ回で歩いて運ぶ（2 回目・red） 番号 9 職員 53：薬剤部の払い出し口→外来化学療法室の受付 出す 16491.7 秒・着く 16535.55 秒・終わる 16715.4 秒 
   人が運ぶ回で渡す（2 回目） 番号 10 職員 56：薬剤部の払い出し口で受け取る 出す 16491.7 秒・着く 16494.4 秒・終わる 16555.55 秒 
職員の動き（staff_moves147 の種類）： 便で積む 15・人が運ぶ回で歩いて運ぶ 2・人が運ぶ回で受け取る 1・便で受け取る 15・呼びに出る 382・正面玄関と総合受付の間を歩く 42・付き添う 40・人が運ぶ回で渡す 1
ほかの階の職員の3つ： {'通り抜ける人|出していない': 74, '通り抜ける人|出した': 16, '用事で来る医師|出した': 36, '運ぶ人|出した': 54}
清掃・警備の人： {'清掃の人1': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '清掃の人2': {'sessions': 4, 'of': 4, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人1': {'sessions': 1, 'of': 1, 'patrols': 0, 'forbidden_s': 0, 'no_zone_s': 0}, '警備の人2': {'sessions': 1, 'of': 1, 'patrols': 9, 'forbidden_s': 0, 'no_zone_s': 0}}
   入る・出る： 7:30 清掃の人1 入る：朝の清掃（外来の大廊下と待合）／7:30 清掃の人2 入る：朝の清掃（外来の大廊下と待合）／7:30 警備の人2 入る：正面玄関に立つ（見回りの合間）／7:55 清掃の人2 出た／7:55 清掃の人1 出た／8:00 警備の人1 入る：正面玄関に立つ／10:00 清掃の人1 入る：トイレの見回りとごみ集め 1 回目／10:00 清掃の人2 入る：トイレの見回りとごみ集め 1 回目／10:08 清掃の人1 出た／10:20 清掃の人2 出た／13:00 清掃の人1 入る：トイレの見回りとごみ集め 2 回目／13:00 清掃の人2 入る：トイレの見回りとごみ集め 2 回目／13:09 清掃の人1 出た／13:19 清掃の人2 出た／15:30 清掃の人1 入る：トイレの見回りとごみ集め 3 回目／15:30 清掃の人2 入る：トイレの見回りとごみ集め 3 回目／15:41 清掃の人1 出た／15:50 清掃の人2 出た／16:00 警備の人1 出た
   見回り： 8:00・9:00・10:00・11:00・12:00・13:00・14:00・15:00・16:00
時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）
時刻          大廊下x0〜70  依頼155  目安(flow_estimate)  大廊下x70〜120  依頼155  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部
7:30〜8:00     0.5        1.1          1〜3               0.3        0.4       3.9   11.4    140.8       0.3           3.2              0.1          0.2   160.7
8:00〜8:30     0.5        1.5          2〜8               0.1        0.5      16.6   37.9    154.1       0.4           4.6              0.1          1.3   215.6
8:30〜9:00     1.5        1.1          2〜8               0.2        0.5      20.0   70.2    163.4       0.3           5.0              0.1          3.6   264.2
9:00〜9:30     1.2        1.7          2〜8               0.4        0.8      30.8   94.8    174.4       0.3           4.9              0.1          5.5   312.4
9:30〜10:00     0.8        1.6          2〜8               0.4        0.8      31.3  113.4    176.1       0.5           5.1              0.1          4.8   332.6
10:00〜10:30     0.8        1.4          2〜8               0.5        0.6      38.4  118.8    174.6       0.5           4.8              0.2          4.9   343.6
10:30〜11:00     1.1        1.5          2〜8               0.2        0.4      42.6  121.7    181.6       0.5           5.3              0.1          3.4   356.3
11:00〜11:30     0.8        1.3          1〜3               0.4        0.5      39.0  113.5    180.8       0.5           4.8              0.2          3.6   343.6
11:30〜12:00     0.8        1.1          1〜3               0.4        0.5      26.2  108.3    182.3       0.3           5.0              0.1          3.0   326.5
12:00〜12:30     0.6        1.4          1〜3               0.5        0.4      31.6   93.0    181.2       0.5           4.8              0.2          3.5   316.0
12:30〜13:00     0.7        0.7          1〜3               0.4        0.3      34.1   67.6    181.6       0.4           4.8              0.3          1.7   291.6
13:00〜13:30     0.7        1.5          1〜3               0.2        0.5      34.2   52.2    179.2       0.3           4.8              0.1          2.7   274.5
13:30〜14:00     0.8        1.2          1〜3               0.2        0.7      36.4   42.1    176.4       0.6           4.6              0.1          2.0   263.2
14:00〜14:30     1.0        0.9          1〜3               0.3        0.3      29.5   42.0    170.8       0.5           4.6              0.3          2.1   251.1
14:30〜15:00     0.5        1.0          1〜3               0.4        0.4      19.3   37.4    164.9       0.5           4.4              0.1          0.9   228.3
15:00〜15:30     0.4        1.2          1〜3               0.3        0.7      15.1   35.6    162.2       0.4           4.3              0.1          1.4   220.0
15:30〜16:00     0.9        0.7          1〜3               0.3        0.3      14.4   27.0    158.8       0.4           4.3              0.1          2.6   208.8
16:00〜16:30     0.3        1.0          1〜3               0.3        0.6      12.8   21.1    154.3       0.4           3.3              0.2          1.1   193.9
外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 1.0 人・最大 8 人（依頼155 1.4・6／目安 2〜8）／空いている時間帯 平均 0.7 人・最大 5 人（依頼155 1.1・7／目安 1〜3）
1日の平均 0.77 人（依頼155 1.21 人）
午後（13:00〜）平均 0.7 人・最大 5 人（依頼155 1.1・6／目安 1〜3）
大廊下 x70〜120：1日の平均 0.32 人・最大 3 人（依頼155 0.50 人・4 人）
職員の廊下の人数：平均 0.41 人・最大 3 人
   （依頼155 平均 1.07 人・最大 6 人）
7:30〜8:00（清掃の間）：大廊下 x0〜70 平均 0.47 人・最大 3 人（依頼155 1.10 人・4 人）／x70〜120 平均 0.33 人・最大 2 人
問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼157 ／ 依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143
   走っている間 全部: 5／26／20／0／0／5 ／ 6／27／32／0／0／3 ／ 17／54／51／0／0／10 ／ 9／37／37／0／0／1 ／ 8／42／35／0／0／3 ／ 23／49／31／2／1／5   （合計 56 ／ 68 ／ 132 ／ 84 ／ 88 ／ 111）
     外来の大廊下: 2／10／4／0／0／0 ／ 1／7／5／0／0／1 ／ 5／12／7／0／0／2 ／ 1／5／4／0／0／0 ／ 1／7／2／0／0／0 ／ 21／48／28／2／1／5
     職員の廊下: 2／12／14／0／0／4 ／ 4／19／23／0／0／1 ／ 4／27／33／0／0／3 ／ 5／24／28／0／0／0 ／ 5／30／28／0／0／2 ／ 2／1／2／0／0／0
     部屋の中: 1／4／2／0／0／1 ／ 1／1／4／0／0／1 ／ 8／15／11／0／0／5 ／ 3／8／5／0／0／1 ／ 2／5／5／0／0／1 ／ 0／0／1／0／0／0
     玄関の通り: 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0 ／ 0／0／0／0／0／0
   台の前で待っている間: 0／0／10／0／0／0 ／ 0／47／8／0／0／0 ／ 0／64／12／0／0／0 ／ 0／65／11／0／0／0 ／ 0／66／9／0／0／0 ／ 0／0／0／0／0／0
   速いままのひやり: 26 ／ 27 ／ 54 ／ 37 ／ 42 ／ 35
   助け: 0 ／ 0 ／ 0 ／ 0 ／ 0 ／ 2
   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: 7 ／ 8 ／ 38 ／ 1 ／ 4 ／ 22
相手（依頼157・走っている間・ひやり＋よけさせられた＋止まりきれなかった 51 件）：職員の形（スタッフ）39 件（76%）・ストレッチャーと清掃のカートを足すと 39 件（76%）
相手（依頼155・走っている間・ひやり＋よけさせられた＋止まりきれなかった 62 件）：職員の形（スタッフ）59 件（95%）・ストレッチャーと清掃のカートを足すと 60 件（97%）
   相手 1 急に止まった（番号ごと）: なし 3・ほかの階の職員 運ぶ人 1・患者・付き添い・見舞い 外来の患者 1
   相手 2 ひやり（番号ごと）: 職員 9 9・患者・付き添い・見舞い 外来の患者 6・職員 17 4・ほかの階の職員 運ぶ人 4・職員 13 1・職員 19 1・病棟の看護師 病棟の看護師 1
   相手 3 人がよけさせられた（番号ごと）: 患者・付き添い・見舞い 外来の患者 6・ほかの階の職員 運ぶ人 5・職員 9 5・ほかの階の職員 用事で来る医師 2・病棟の看護師 病棟の看護師 2
   相手 6 止まりきれなかった（番号ごと）: ほかの階の職員 運ぶ人 4・職員 13 1
   職員の形の相手が何をしていたか（2・3・6）： 職員 9：用事へ歩く：人が運ぶ回で歩いて運ぶ 14・ほかの階の職員 運ぶ人：歩いている 11・職員 17：持ち場 4・病棟の看護師 病棟の看護師：出口へ 3・職員 13：用事へ歩く：人が運ぶ回で受け取る 2・ほかの階の職員 運ぶ人：出口へ 2・ほかの階の職員 用事で来る医師：歩いている 2・職員 19：持ち場へ戻る 1
   台の前で待っている間の相手： 患者・付き添い・見舞い 外来の患者 7・患者・付き添い・見舞い 付き添い 3
歩いている途中で 60 秒以上動けなかった人 6 件：
   #1 患者・付き添い・見舞い 外来の患者（杖の人・207）8:06 〜 8:08（116.8 秒）(39.733,17.742) 総合受付・会計の待合／歩いている（総合受付へ）／終わり：着いた・その場で待つ
       まわり：職員 17（スタッフ・id 108）116.8 秒（止まっていた 116.8・動いていた 0）最も近い 1.625 m／持ち場
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 208）116.8 秒（止まっていた 116.8・動いていた 0）最も近い 0.456 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 209）92.2 秒（止まっていた 91.15・動いていた 1.05）最も近い 1.126 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 210）4.35 秒（止まっていた 0・動いていた 4.35）最も近い 0.524 m／歩いている（総合受付へ）
   #2 患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・235）8:17 〜 8:19（113.4 秒）(43.687,17.656) 総合受付・会計の待合／歩いている（総合受付へ）／終わり：動き出した
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 233）113.4 秒（止まっていた 112.35・動いていた 1.05）最も近い 0.381 m／とどまっている（総合受付）
       まわり：職員 17（スタッフ・id 104）91.3 秒（止まっていた 91.3・動いていた 0）最も近い 1.718 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 237）3.95 秒（止まっていた 0・動いていた 3.95）最も近い 0.399 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 238）3.3 秒（止まっていた 0・動いていた 3.3）最も近い 0.517 m／歩いている
   #3 患者・付き添い・見舞い 付き添い（杖の人・355）9:07 〜 9:08（95.3 秒）(39.643,17.73) 総合受付・会計の待合／歩いている／終わり：動き出した
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 354）95.3 秒（止まっていた 94.2・動いていた 1.1）最も近い 0.458 m／とどまっている（総合受付）
       まわり：職員 17（スタッフ・id 108）95.1 秒（止まっていた 95.1・動いていた 0）最も近い 1.594 m／持ち場
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 359）4 秒（止まっていた 0・動いていた 4）最も近い 0.502 m／歩いている（総合受付へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 357）3.3 秒（止まっていた 0・動いていた 3.3）最も近い 0.45 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 356）0.8 秒（止まっていた 0.8・動いていた 0）最も近い 1.705 m／とどまっている（総合受付）
   #4 患者・付き添い・見舞い 付き添い（車いす・395）9:27 〜 9:29（118.5 秒）(71.443,32.816) ほかの外来の中待合／歩いている／終わり：着いた・その場で待つ
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 223）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.576 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 234）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.344 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 271）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.883 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 272）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.478 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 273）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.026 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 274）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 0.57 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 386）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 0.584 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 387）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.014 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 391）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 1.334 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 411）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 0.98 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 412）118.5 秒（止まっていた 118.5・動いていた 0）最も近い 0.82 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 418）2.7 秒（止まっていた 0・動いていた 2.7）最も近い 1.29 m／歩いている（中待合へ）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 419）2.65 秒（止まっていた 0・動いていた 2.65）最も近い 1.463 m／歩いている
   #5 患者・付き添い・見舞い 外来の患者（杖の人・484）10:33 〜 10:35（118.6 秒）(49.357,32.424) ほかの外来の中待合／歩いている（会計の待合へ）／終わり：着いた・その場で待つ
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 265）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 0.817 m／席待ち
       まわり：患者・付き添い・見舞い 付き添い（杖の人・id 355）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.882 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 372）118.6 秒（止まっていた 118.4・動いていた 0.2）最も近い 1.699 m／席待ち
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 436）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.897 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 437）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.196 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 493）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.388 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 498）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 0.45 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 510）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.131 m／席待ち
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 518）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 0.45 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 549）118.6 秒（止まっていた 118.6・動いていた 0）最も近い 1.332 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 558）97.9 秒（止まっていた 96.2・動いていた 1.7）最も近い 0.748 m／歩いている（中待合へ）
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 492）85.15 秒（止まっていた 85.15・動いていた 0）最も近い 1.946 m／とどまっている（中待合）
       まわり：患者・付き添い・見舞い 付き添い（杖の人・id 559）76.5 秒（止まっていた 75.7・動いていた 0.8）最も近い 1.664 m／歩いている
       まわり：患者・付き添い・見舞い 付き添い（歩く患者・付き添い・id 289）5.4 秒（止まっていた 0・動いていた 5.4）最も近い 0.579 m／歩いている
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 277）4.2 秒（止まっていた 3.8・動いていた 0.4）最も近い 1.899 m／看護師待ち
       まわり：患者・付き添い・見舞い 外来の患者（歩く患者・付き添い・id 288）4.05 秒（止まっていた 0・動いていた 4.05）最も近い 0.646 m／歩いている（会計の待合へ）
       まわり：職員 4（スタッフ・id 29）1.35 秒（止まっていた 0・動いていた 1.35）最も近い 1.919 m／中待合へ呼びに出る
   #6 患者・付き添い・見舞い 外来の患者（杖の人・604）12:36 〜 12:41（262.4 秒）(49.916,9.148) 正面玄関／出口へ／終わり：動き出した
       まわり：職員 19（スタッフ・id 140）262.4 秒（止まっていた 262.4・動いていた 0）最も近い 0.442 m／持ち場
       まわり：警備の人 警備の人（スタッフ・id 144）261.4 秒（止まっていた 261.4・動いていた 0）最も近い 1.88 m／正面玄関に立つ
       まわり：患者・付き添い・見舞い 化学療法の患者（歩く患者・付き添い・id 445）3.95 秒（止まっていた 0・動いていた 3.95）最も近い 0.528 m／出口へ
       まわり：患者・付き添い・見舞い 救急の患者（歩く患者・付き添い・id 751）3.75 秒（止まっていた 0・動いていた 3.75）最も近い 0.835 m／歩いている（救急の待合へ）
病棟の患者が 救急の待合 にいた時間：24 人・中央値 14.6 秒・最長 18.6 秒
病棟の患者が 救急の処置の場所 にいた時間：24 人・中央値 29.9 秒・最長 40.9 秒
7:30〜8:00 に出た緑の便 1 便の問題（走っている間）：1／1／0／0／0／1（合計 3）
   区間ごとの数（全部の種類）： 行き 35・待ち 10・帰り 15・移る 6
   相手 1 急に止まった: なし 3・スタッフ 1・歩く患者・付き添い 1
   相手 2 ひやり: スタッフ 20・歩く患者・付き添い 6
   相手 3 人がよけさせられた: スタッフ 14・歩く患者・付き添い 6
   相手 6 止まりきれなかった: スタッフ 5
```

#### cmp157_out.txt（同じ種の回どうしで、記録の md5 を比べた出力）

```text
== a vs b
同じ 26：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・errands157.csv・events.csv・extra157.csv・legs.csv・moves.csv・partners157.csv・people147.csv・points157.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff157.csv・staff_moves147.csv・stall157.csv・stall_near157.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, wall_s
== a vs L
同じ 26：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・errands157.csv・events.csv・extra157.csv・legs.csv・moves.csv・partners157.csv・people147.csv・points157.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff157.csv・staff_moves147.csv・stall157.csv・stall_near157.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, wall_s
== a vs 試しの実行ファイルの full0
同じ 26：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・errands157.csv・events.csv・extra157.csv・legs.csv・moves.csv・partners157.csv・people147.csv・points157.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff157.csv・staff_moves147.csv・stall157.csv・stall_near157.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, unity_cs, wall_s
== s8 vs 試しの実行ファイルの full8
同じ 26：access147.csv・build143.csv・chemo_way155.csv・crowd.csv・elevator149.csv・er_cross154.csv・errands157.csv・events.csv・extra157.csv・legs.csv・moves.csv・partners157.csv・people147.csv・points157.csv・rescues.csv・robot_track.csv・robot_zones.csv・seats147.csv・staff147.csv・staff157.csv・staff_moves147.csv・stall157.csv・stall_near157.csv・toilet149.csv・trips.csv・zones147.csv
違う 0：
summary.json の違う項目： run, unity_cs, wall_s
== h143repro vs check143a
同じ 9：build143.csv・crowd.csv・events.csv・legs.csv・moves.csv・rescues.csv・robot_track.csv・robot_zones.csv・trips.csv
違う 0：
summary.json の違う項目： run, unity_cs, wall_s
```

#### agg157.py（依頼157 の確かめのまとめを作るスクリプト）

```python
#!/usr/bin/env python3
"""依頼157：確かめの回のまとめ（依頼143・147・149・154・155 の check と並べる）。
  python3 agg157.py <回のフォルダ> [<回のフォルダ> ...]"""
import csv, json, os, sys, statistics
from collections import Counter, defaultdict

HOSP = "/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital"
R143 = {"hall": HOSP + "/20261110_floor143/runs/check143a_v06_hall_s0", "switch": HOSP + "/20261110_floor143/runs/check143c_v06_switch_s0"}
R147 = {"hall": HOSP + "/20261110_people147/runs/check147a_v06_hall_s0", "switch": HOSP + "/20261110_people147/runs/check147c_v06_switch_s0"}
R149 = {"hall": HOSP + "/20261111_flow149/runs/check149a_v06_hall_s0", "switch": HOSP + "/20261111_flow149/runs/check149c_v06_switch_s0"}
R154 = {"hall": HOSP + "/20261111_flow154/runs/check154a_v06_hall_s0", "switch": HOSP + "/20261111_flow154/runs/check154c_v06_switch_s0"}
R155 = {"hall": HOSP + "/20261112_flow155/runs/check155a_v06_hall_s0", "switch": HOSP + "/20261112_flow155/runs/check155c_v06_switch_s0"}
EST = {"busy": (2, 8), "quiet": (1, 3)}   # assumptions.json crowd_people.flow_estimate
H1 = "/Users/shimazueiichi/Robotics_UX/ServiceSim/Assets/ServiceSim/Hospital/Data/hospital_h1-155.json"
TN = {1: "急に止まった", 2: "ひやり", 3: "人がよけさせられた", 4: "立ち往生", 5: "横切り", 6: "止まりきれなかった"}
LAY = json.load(open(H1, encoding="utf-8"))
COR = {c["name"]: c["rect"] for c in LAY["layout"]["corridors"]}
STAFF_COR = ["職員の中廊下", "西の縦廊下", "東の縦廊下", "外来の奥の職員通路", "東の縦廊下（北）"]
WAIT = ["総合受付・会計の待合", "お薬の窓口の待合", "生理検査の待合", "化学療法の受付・待合", "救急の待合"]
MIDW = ["内科の中待合", "ほかの外来の中待合"]
SCOR = ["職員の中廊下", "西の縦廊下", "東の縦廊下", "外来の奥の職員通路"]
ENT = ["正面玄関", "玄関の通り"]
ELV = ["エレベーターホール", "エレベーター"]
TOI = ["トイレ（西）", "トイレ（東）", "化学療法のトイレ"]
ROLES = ("外来の患者", "化学療法の患者", "救急の患者", "看護師", "医師", "薬剤師", "検査技師", "事務")


def inr(r, x, z, e=1e-4):
    return r[0] - e <= x <= r[2] + e and r[1] - e <= z <= r[3] + e


def area3(x, z):
    if inr(COR["外来の大廊下"], x, z): return "外来の大廊下"
    if any(inr(COR[n], x, z) for n in STAFF_COR): return "職員の廊下"
    if inr(COR["玄関の通り"], x, z): return "玄関の通り"
    return "部屋の中"


def rd(run, f):
    return list(csv.DictReader(open(os.path.join(run, f), encoding="utf-8")))


def one(run):
    s = json.load(open(os.path.join(run, "summary.json"), encoding="utf-8"))
    ev = rd(run, "events.csv")
    legs = {l["leg_id"]: l for l in rd(run, "legs.csv")}
    run_c, wait_c, ar = Counter(), Counter(), defaultdict(Counter)
    fast = 0
    kinds = defaultdict(Counter)
    for e in ev:
        k = int(e["type"])
        d = legs[e["leg_id"]]["dir"] if e["leg_id"] in legs else ""
        if d == "待ち":
            wait_c[k] += 1
            continue
        run_c[k] += 1
        kinds[k][e["partner_kind"] or "なし"] += 1
        if k == 2 and e["note"] == "速いまま": fast += 1
        ar[area3(float(e["robot_x"]), float(e["robot_z"]))][k] += 1
    return dict(s=s, ev=ev, legs=legs, run=run_c, wait=wait_c, area=ar, fast=fast, kinds=kinds,
                trips=rd(run, "trips.csv"), moves=rd(run, "moves.csv"), resc=rd(run, "rescues.csv"))


def line(c, ks=range(1, 7)):
    return "／".join("%d" % c[k] for k in ks)


def hm(t):
    t = int(round(t)) + 7 * 3600 + 1800
    return "%d:%02d" % (t // 3600, (t % 3600) // 60)


def halls(run):
    return {float(r["t_s"]): int(r["hall_people"]) for r in rd(run, "crowd.csv")}


def zones_table(run, s, run149):   # run149 ＝ 比べる相手（依頼155）
    zl = rd(run, "zones147.csv")
    byt = defaultdict(lambda: Counter())
    for r in zl:
        t = float(r["t_s"]); n = int(r["patients"]) + int(r["staff"])
        z = r["zone"]
        if z in WAIT: c = "待合"
        elif z in MIDW: c = "中待合"
        elif z in SCOR: c = "職員の廊下"
        elif z == "外来の大廊下": c = None
        elif z in ENT: c = "玄関"
        elif z in ELV: c = "エレベーターホール"     # ホールと中（かご）を合わせる
        elif z in TOI: c = "トイレ"
        else: c = "部屋の中"
        if c: byt[t][c] += n
        byt[t]["all"] += n
    crowd = rd(run, "crowd.csv")
    hall = {float(r["t_s"]): (int(r["hall_people"]), int(r["hall_target"]), int(r["east_people"])) for r in crowd}
    h147 = halls(run149)
    e149 = {float(r["t_s"]): int(r["east_people"]) for r in rd(run149, "crowd.csv")}
    end = s["sim_s"]
    print("時刻ごと（30分ごとの平均。1分ごとに数えた人数。患者・付き添い・職員・エレベーターから来た人の全部）")
    print("時刻          大廊下x0〜70  依頼155  目安(flow_estimate)  大廊下x70〜120  依頼155  待合   中待合  部屋の中  職員の廊下  玄関・玄関の通り  エレベーターホール  トイレ   全部")
    t0 = 0.0
    while t0 < end - 1:
        ts = [t for t in hall if t0 <= t < t0 + 1800]
        if not ts: break
        avg = lambda f: sum(f(t) for t in ts) / len(ts)
        hh = avg(lambda t: hall[t][0]); ee = avg(lambda t: hall[t][2])
        tg = "%d〜%d" % (EST["busy"] if 1800 <= t0 < 12600 else EST["quiet"])
        x49 = [e149[t] for t in e149 if t0 <= t < t0 + 1800]
        e49 = sum(x49) / len(x49) if x49 else float("nan")
        t47 = [h147[t] for t in h147 if t0 <= t < t0 + 1800]
        h47 = sum(t47) / len(t47) if t47 else float("nan")
        cs = {c: avg(lambda t: byt[t][c]) for c in ("待合", "中待合", "部屋の中", "職員の廊下", "玄関", "エレベーターホール", "トイレ", "all")}
        print("%s〜%s  %6.1f     %6.1f     %8s            %6.1f     %6.1f    %6.1f %6.1f  %7.1f   %7.1f       %7.1f          %7.1f       %6.1f  %6.1f" % (
            hm(t0), hm(t0 + 1800), hh, h47, tg, ee, e49, cs["待合"], cs["中待合"], cs["部屋の中"], cs["職員の廊下"], cs["玄関"], cs["エレベーターホール"], cs["トイレ"], cs["all"]))
        t0 += 1800
    busy = [hall[t][0] for t in hall if 1800 <= t < 12600]
    quiet = [hall[t][0] for t in hall if t < 1800 or t >= 12600]
    b47 = [h147[t] for t in h147 if 1800 <= t < 12600]; q47 = [h147[t] for t in h147 if t < 1800 or t >= 12600]
    allh = list(hall.values())
    print("外来の大廊下 x0〜70：混んでいる時間帯（8:00〜11:00）平均 %.1f 人・最大 %d 人（依頼155 %.1f・%d／目安 2〜8）／空いている時間帯 平均 %.1f 人・最大 %d 人（依頼155 %.1f・%d／目安 1〜3）" % (
        sum(busy) / len(busy), max(busy), sum(b47) / len(b47), max(b47), sum(quiet) / len(quiet), max(quiet), sum(q47) / len(q47), max(q47)))
    print("1日の平均 %.2f 人（依頼155 %.2f 人）" % (sum(h[0] for h in allh) / len(allh), sum(h147.values()) / len(h147)))
    pm = [hall[t][0] for t in hall if t >= 19800]          # 13:00 から（午後）
    pm49 = [h147[t] for t in h147 if t >= 19800]
    print("午後（13:00〜）平均 %.1f 人・最大 %d 人（依頼155 %.1f・%d／目安 1〜3）" % (sum(pm) / len(pm), max(pm), sum(pm49) / len(pm49), max(pm49)))
    ea = [hall[t][2] for t in hall]; e49a = list(e149.values())
    print("大廊下 x70〜120：1日の平均 %.2f 人・最大 %d 人（依頼155 %.2f 人・%d 人）" % (sum(ea) / len(ea), max(ea), sum(e49a) / len(e49a), max(e49a)))
    sc = [byt[t]["職員の廊下"] for t in byt]
    print("職員の廊下の人数：平均 %.2f 人・最大 %d 人" % (sum(sc) / len(sc), max(sc)))
    # 依頼155 の職員の廊下
    zb = rd(run149, "zones147.csv"); bt = defaultdict(int)
    for r in zb:
        if r["zone"] in SCOR: bt[float(r["t_s"])] += int(r["patients"]) + int(r["staff"])
    print("   （依頼155 平均 %.2f 人・最大 %d 人）" % (sum(bt.values()) / max(1, len(bt)), max(bt.values()) if bt else 0))
    # 7:30〜8:00（清掃の間）
    cl = [hall[t][0] for t in hall if t < 1800]; ce = [hall[t][2] for t in hall if t < 1800]
    cl5 = [h147[t] for t in h147 if t < 1800]
    print("7:30〜8:00（清掃の間）：大廊下 x0〜70 平均 %.2f 人・最大 %d 人（依頼155 %.2f 人・%d 人）／x70〜120 平均 %.2f 人・最大 %d 人" % (
        sum(cl) / len(cl), max(cl), sum(cl5) / len(cl5), max(cl5), sum(ce) / len(ce), max(ce)))


def people(run, s):
    rows = rd(run, "people147.csv")
    for what in ("外来の患者", "付き添い", "化学療法の患者", "救急の患者", "病棟の患者", "病棟の看護師", "見舞いの人", "ほかの階の職員"):
        rs = [r for r in rows if r["what"] == what]
        st = sorted(float(r["stay_s"]) / 60 for r in rs if r["stay_s"])
        inside = sum(1 for r in rs if r["spawn_s"] and not r["exit_s"])
        never = sum(1 for r in rs if not r["spawn_s"])
        if len(st) >= 2:
            q = statistics.quantiles(st, n=10)
            print("%s %d 人：出た %d・回の終わりに中にいた %d・入らなかった %d／いた時間 中央値 %.1f 分・最短 %.1f・最長 %.1f（10〜90%%：%.1f〜%.1f）" % (
                what, len(rs), len(st), inside, never, statistics.median(st), st[0], st[-1], q[0], q[-1]))
        else:
            print("%s %d 人：出た %d・回の終わりに中にいた %d・入らなかった %d" % (what, len(rs), len(st), inside, never))
    pat = [r for r in rows if r["what"] in ("外来の患者",)]
    sk = Counter()
    for r in rows:
        for x in r["skipped"].split("|"):
            if x: sk[r["what"] + " " + x] += 1
    print("飛ばした行き先（人）：", "・".join("%s %d 人" % kv for kv in sk.most_common()) or "なし")
    print("初診・紹介 %d 人（外来の患者 %d 人）" % (sum(1 for r in pat if r["first_visit"] == "1"), len(pat)))
    # トイレ
    tw = Counter(r["what"] for r in rows if r["toilet_want"] == "1")
    td = Counter((r["what"], r["toilet"]) for r in rows if r["toilet"])
    tl = rd(run, "toilet149.csv")
    print("トイレ：行くと決めた人 %s／行った人 %s" % ("・".join("%s %d" % kv for kv in tw.items()),
          "・".join("%s→%s %d" % (k[0], k[1], v) for k, v in sorted(td.items()))))
    if tl:
        dur = [float(r["back_s"]) - float(r["leave_seat_s"]) for r in tl]
        walk = [float(r["arrive_s"]) - float(r["leave_seat_s"]) for r in tl]
        print("   席を立ってから戻るまで 中央値 %.1f 分（最短 %.1f・最長 %.1f）／席からトイレまで歩いた時間 中央値 %.0f 秒・最長 %.0f 秒" % (
            statistics.median(dur) / 60, min(dur) / 60, max(dur) / 60, statistics.median(walk), max(walk)))
        st = Counter(r["step"] for r in tl)
        print("   どこで待っている間に行ったか：", "・".join("%s %d" % kv for kv in st.most_common()))
    print("   行く時が来ないまま回が終わった %d・行けるトイレがない %d・戻るのを待って次へ行くのが遅れた %d 回（計 %.0f 秒）" % (
        s["flow_toilet_not_due"], s["flow_toilet_no_way"], s["flow_toilet_extend_n"], s["flow_toilet_extend_s"]))
    # エレベーター
    el = rd(run, "elevator149.csv")
    ec = Counter((r["what"], r["dir"]) for r in el)
    print("エレベーター（種類ごと）：", "・".join("%s %s %d" % (k[0], k[1], v) for k, v in sorted(ec.items())))
    wk = Counter(r["kind"] for r in el if r["what"] == "病棟の患者" and r["dir"] == "エレベーターから出る")
    print("   病棟の患者の形：", "・".join("%s %d" % kv for kv in wk.items()))
    print("出さなかった人（行き先へ歩いて行けない）：", s.get("flow_not_spawned"), "／救急の患者 %d 人（正面玄関から行ける %d）" % (s["flow_er_not_spawned"], s["flow_er_reach_from_main"]))
    xl = rd(run, "er_cross154.csv")
    for z in ("救急の待合", "救急の処置の場所"):
        rs = [r for r in xl if r["zone"] == z]
        byw = Counter(r["what"] for r in rs)
        sec = sorted(float(r["seconds"]) for r in rs)
        if sec:
            print("%s を通り抜けた外来の患者の役割の人 %d 人（%s）／そこにいた時間 合計 %.0f 秒・1人 中央値 %.1f 秒・最長 %.1f 秒" % (
                z, len(rs), "・".join("%s %d" % kv for kv in byw.items()), sum(sec), statistics.median(sec), sec[-1]))
        else: print("%s を通り抜けた外来の患者の役割の人 0 人" % z)
    print("病棟の看護師：検査の所の中のそばに立った %d・所の中の点 %d・大廊下の端で待った %d／化学療法のトイレへ行けず西・東にした %d" % (
        s.get("flow_ward_nurse_inside", -1), s.get("flow_ward_nurse_inside_random", -1), s["flow_ward_nurse_hall_waits"], s.get("flow_chemo_toilet_fallback", -1)))
    print("案A：付き添いを呼んだ %d・付き添った %d・間に合わない %d・時間切れ %d／付き添いなしで裏の通路にいた患者 %.1f 秒" % (
        s["flow_escort_calls"], s["flow_escorts"], s["flow_escort_late"], s["flow_escort_timeouts"], s["flow_back_no_escort_s"]))
    pr = [r for r in pat if "処置・検査室" in r["steps"]]
    went = sum(1 for r in pr if any(x.startswith("処置・検査室:") and x.split(":")[3] for x in r["steps"].split("|")))
    print("   処置・検査室・内視鏡室の行き先がある外来の患者 %d 人・着いた %d 人" % (len(pr), went))


def east_end(a):
    return sum(1 for e in a["ev"] if (a["legs"][e["leg_id"]]["dir"] if e["leg_id"] in a["legs"] else "") != "待ち" and float(e["robot_x"]) >= 95 and float(e["robot_z"]) >= 27)


def prob(a, b143, b147, b149, b154, b155):
    L = [a, b155, b154, b149, b147, b143]
    f = lambda g: " ／ ".join(g(x) for x in L)
    print("問題の数（1 急に止まった／2 ひやり／3 人がよけさせられた／4 立ち往生／5 横切り／止まりきれなかった）  依頼157 ／ 依頼155 ／ 依頼154 ／ 依頼149 ／ 依頼147 ／ 依頼143")
    print("   走っている間 全部: " + f(lambda x: line(x["run"])) + "   （合計 " + f(lambda x: "%d" % sum(x["run"].values())) + "）")
    for ar in ("外来の大廊下", "職員の廊下", "部屋の中", "玄関の通り"):
        print("     %s: " % ar + f(lambda x: line(x["area"][ar])))
    print("   台の前で待っている間: " + f(lambda x: line(x["wait"])))
    print("   速いままのひやり: " + f(lambda x: "%d" % x["fast"]))
    print("   助け: " + f(lambda x: "%d" % len(x["resc"])))
    print("   大廊下の東の端（走っている間・ロボットの中心 x95 以上・z27 以上）: " + f(lambda x: "%d" % east_end(x)))


def chemo155(run, s):
    rows = rd(run, "people147.csv")
    ch = [r for r in rows if r["what"] == "化学療法の患者"]
    want = [r for r in ch if r["toilet_want"] == "1"]
    td = Counter(r["toilet"] or "（まだ・行く時が来ない）" for r in want)
    print("化学療法の患者 %d 人のうちトイレに行くと決まった %d 人：行き先 %s／化学療法のトイレへ行けず西・東にした %d 人" % (
        len(ch), len(want), "・".join("%s %d" % (k, td.get(k, 0)) for k in ("化学療法のトイレ", "トイレ（西）", "トイレ（東）", "行けない", "（まだ・行く時が来ない）")), s.get("flow_chemo_toilet_fallback", -1)))
    ids = set(r["id"] for r in ch)
    tl = [r for r in rd(run, "toilet149.csv") if r["what"] == "化学療法の患者"]
    for r in tl:
        print("   id %s %s 席を立つ %s 秒・着く %s 秒（歩き %.1f 秒）・戻る %s 秒（帰り %.1f 秒）" % (r["id"], r["toilet"], r["leave_seat_s"], r["arrive_s"],
              float(r["arrive_s"]) - float(r["leave_seat_s"]), r["back_s"], float(r["back_s"]) - float(r["stay_end_s"])))
    wy = rd(run, "chemo_way155.csv")
    bw = defaultdict(list)
    for r in wy: bw[r["what"]].append(r)
    print("トイレの前の通り道（x114〜115.5・z53〜60）にいた人 %d 人：" % len(wy))
    for w, rs in bw.items():
        print("   %s %d 人・いた時間 合計 %.0f 秒（1人 最長 %.1f 秒）・歩いている途中で止まっていた 合計 %.2f 秒・続けて止まった最長 %.2f 秒" % (
            w, len(rs), sum(float(r["seconds"]) for r in rs), max(float(r["seconds"]) for r in rs), sum(float(r["stopped_s"]) for r in rs), max(float(r["longest_stop_s"]) for r in rs)))
    print("   続けて止まった最長（全員）%.2f 秒" % s.get("flow_chemo_way_longest_stop_s", -1))


def staff155(run):
    st = rd(run, "staff147.csv")
    posts = defaultdict(set); own = {}
    for r in st: posts[r["role"]].add(r["zone"]); own[r["staff_id"] if "staff_id" in r else r["id"]] = r["zone"]
    mv = rd(run, "staff_moves147.csv")
    w = Counter(m["what"] for m in mv)
    print("職員の動き（終わったもの）：", "・".join("%s %d" % kv for kv in w.items()))
    c = Counter(); non = 0; ownn = 0
    for m in mv:
        if m["what"] != "持ち場から動く": continue
        c[(m["role"], m["dest"])] += 1
        if m["dest"] not in posts[m["role"]]: non += 1
        if m["dest"] == own[m["staff_id"]]: ownn += 1
    print("ふだんの行き来（持ち場から動く）の行き先：役割ごと・所ごとの回数（＊＝その役割の持ち場がある所）")
    for role in ("医師", "看護師", "薬剤師", "検査技師", "事務"):
        ks = sorted(k for k in c if k[0] == role)
        print("   %s 計 %d：%s" % (role, sum(c[k] for k in ks), "・".join("%s%s %d" % (k[1], "＊" if k[1] in posts[role] else "（持ち場でない）", c[k]) for k in ks)))
        print("      持ち場がある所：" + "・".join(sorted(posts[role])))
    print("   持ち場でない所へ行った回数 %d／自分の持ち場の所が行き先 %d" % (non, ownn))


def staff157(run, s, a):
    st = rd(run, "staff157.csv")
    er = rd(run, "errands157.csv")
    trips = a["trips"]
    ran = [t for t in trips if t["start_s"]]
    arrived = [t for t in trips if t["arrive_b_s"]]
    exp = {6: sum(1 for t in ran if t["from"].startswith("内科外来の処置室")), 8: sum(1 for t in ran if t["from"] == "救急室の処置室"),
           10: sum(1 for t in ran if t["from"] == "薬剤部の払い出し口"), 7: sum(1 for t in arrived if t["to"] == "外来化学療法室の受付"),
           13: sum(1 for t in arrived if t["to"] == "検査部の検体受付"), 9: s.get("flow_staff_walks_scheduled", 0)}
    by = defaultdict(lambda: dict(n=0, type=0, out=0.0, outr=0.0, oute=0.0, et=0, ew=0, eo=0, mx=0.0))
    for r in st:
        b = by[int(r["no"])]
        b["n"] += 1; b["type"] = int(r["type"]); o = float(r["outside_s"]); b["out"] += o; b["outr"] += float(r["outside_rescue_s"]); b["oute"] += float(r["outside_errand_s"])
        b["et"] += int(r["errands_trip"]); b["ew"] += int(r["errands_walk"]); b["eo"] += int(r["errands_other"]); b["mx"] = max(b["mx"], o)
    print("職員の番号ごと（型・人数・持ち場の所の外にいた秒 合計（1人 最長）／そのうち助け・用事の間／用事の回数 便・人が運ぶ回・ほか／便の数・人が運ぶ回の数）")
    rows = s.get("flow_staff_by_no", {})
    for no in sorted(by):
        b = by[no]
        e = exp.get(no)
        ok = ""
        if no in (6, 7, 8, 10, 13): ok = "  便の数 %d → %s" % (e, "合う" if b["et"] == e else "合わない")
        if no == 9: ok = "  staff_walks_all %d 回 → %s" % (e, "合う" if b["ew"] == e else "合わない")
        print("   %2d 型%d %3d 人  外 %8.1f 秒（最長 %7.1f）／助け %.1f・用事 %.1f／便 %d・人が運ぶ回 %d・ほか %d%s" % (no, b["type"], b["n"], b["out"], b["mx"], b["outr"], b["oute"], b["et"], b["ew"], b["eo"], ok))
    t1 = [no for no in by if by[no]["type"] == 1 and by[no]["out"] > 0]
    print("   型1 で持ち場の所の外にいた番号：", t1 or "なし（全部 0 秒）")
    w = Counter(re_what(r["what"]) for r in er)
    print("用事（errands157）：", "・".join("%s %d" % kv for kv in w.items()), "／出すのが遅れた（空いている人がいなかった）最大 %.1f 秒・終わりに出せていない %d・扉の内側に来る人がいない %d" % (
        s.get("flow_errand_max_delay_s", 0), s.get("flow_errands_pending_at_end", 0), s.get("flow_errand_partner_missing", 0)))
    for r in er:
        if int(r["walk_no"]) > 0: print("   %s 番号 %s 職員 %s：%s 出す %s 秒・着く %s 秒・終わる %s 秒 %s" % (r["what"], r["no"], r["staff_id"], r["dest"], r["start_s"], r["arrive_s"], r["end_s"], r["note"]))
    mv = rd(run, "staff_moves147.csv")
    print("職員の動き（staff_moves147 の種類）：", "・".join("%s %d" % kv for kv in Counter(re_what(m["what"]) for m in mv).items()))
    print("ほかの階の職員の3つ：", s.get("flow_other_floor_split"))
    print("清掃・警備の人：", s.get("flow_extra"))
    ex = rd(run, "extra157.csv")
    for r in ex:
        if "入る" in r["what"] or "出た" in r["what"] or "見回りに出る" in r["what"]: pass
    ses = [(r["t_s"], r["who"] + r["idx"], r["what"]) for r in ex if "入る" in r["what"] or "出た" in r["what"]]
    print("   入る・出る：", "／".join("%s %s %s" % (hm(float(t)), w2, x.replace("正面玄関から", "")) for t, w2, x in ses))
    print("   見回り：", "・".join(hm(float(r["t_s"])) for r in ex if "見回りに出る" in r["what"]))


def re_what(w):
    i = w.find("（")
    return w[:i] if i >= 0 else w


def partners157(run, a, b):
    pa = {r["event_id"]: r for r in rd(run, "partners157.csv")}
    def run_ev(x):
        return [e for e in x["ev"] if (x["legs"][e["leg_id"]]["dir"] if e["leg_id"] in x["legs"] else "") != "待ち"]
    ra, rb = run_ev(a), run_ev(b)
    for lab, evs, base in (("依頼157", ra, False), ("依頼155", rb, True)):
        tot = sum(1 for e in evs if e["type"] in ("2", "3", "6"))
        stf = sum(1 for e in evs if e["type"] in ("2", "3", "6") and e["partner_kind"] in ("スタッフ", "ストレッチャー", "清掃のカート"))
        stf2 = sum(1 for e in evs if e["type"] in ("2", "3", "6") and e["partner_kind"] == "スタッフ")
        print("相手（%s・走っている間・ひやり＋よけさせられた＋止まりきれなかった %d 件）：職員の形（スタッフ）%d 件（%.0f%%）・ストレッチャーと清掃のカートを足すと %d 件（%.0f%%）" % (
            lab, tot, stf2, 100.0 * stf2 / max(1, tot), stf, 100.0 * stf / max(1, tot)))
    for k in (1, 2, 3, 5, 6):
        c = Counter()
        for e in ra:
            if e["type"] != str(k): continue
            p = pa.get(e["event_id"])
            c[(p["cat"] + " " + p["no"]).strip() if p else "?"] += 1
        if c: print("   相手 %d %s（番号ごと）: %s" % (k, TN[k], "・".join("%s %d" % kv for kv in c.most_common())))
    c = Counter()
    for e in ra:
        if e["type"] in ("2", "3", "6"):
            p = pa.get(e["event_id"])
            if p and p["cat"] in ("職員", "ほかの階の職員", "病棟の看護師", "清掃の人", "警備の人"): c[(p["cat"] + " " + p["no"]).strip() + "：" + re_what(p["doing"])] += 1
    print("   職員の形の相手が何をしていたか（2・3・6）：", "・".join("%s %d" % kv for kv in c.most_common()))
    cw = Counter()
    for e in a["ev"]:
        if (a["legs"][e["leg_id"]]["dir"] if e["leg_id"] in a["legs"] else "") != "待ち": continue
        p = pa.get(e["event_id"])
        cw[(p["cat"] + " " + p["no"]).strip() + ("：" + re_what(p["doing"]) if p and p["cat"] == "職員" else "") if p else "?"] += 1
    print("   台の前で待っている間の相手：", "・".join("%s %d" % kv for kv in cw.most_common()))


def stall157(run):
    st = rd(run, "stall157.csv"); nr = rd(run, "stall_near157.csv")
    near = defaultdict(list)
    for r in nr: near[r["stall_id"]].append(r)
    print("歩いている途中で 60 秒以上動けなかった人 %d 件：" % len(st))
    for r in st:
        print("   #%s %s %s（%s・%s）%s 〜 %s（%s 秒）(%s,%s) %s／%s／終わり：%s" % (r["stall_id"], r["cat"], r["no"], r["kind"], r["walker_id"], hm(float(r["start_s"])), hm(float(r["end_s"])), r["dur_s"], r["x"], r["z"], r["zone"], r["doing"], r["end"]))
        for n in sorted(near[r["stall_id"]], key=lambda n: -float(n["near_s"])):
            print("       まわり：%s %s（%s・id %s）%s 秒（止まっていた %s・動いていた %s）最も近い %s m／%s" % (n["cat"], n["no"], n["kind"], n["near_id"], n["near_s"], n["stopped_s"], n["moving_s"], n["min_d_m"], n["doing"]))
    # 病棟の患者（救急室のまわり）
    xl = [r for r in rd(run, "er_cross154.csv") if r["what"] == "病棟の患者"]
    for z in ("救急の待合", "救急の処置の場所"):
        sec = sorted(float(r["seconds"]) for r in xl if r["zone"] == z)
        if sec: print("病棟の患者が %s にいた時間：%d 人・中央値 %.1f 秒・最長 %.1f 秒" % (z, len(sec), statistics.median(sec), sec[-1]))


def green_early(run, a):
    # 7:30〜8:00 の緑の便（走っている間）の問題
    legs = a["legs"]; c = Counter(); n = 0
    for t in a["trips"]:
        if t["route"] != "green" or not t["start_s"] or float(t["start_s"]) >= 1800: continue
        n += 1
        ids = {t["go_leg"], t["back_leg"]}
        for e in a["ev"]:
            if e["leg_id"] in ids: c[int(e["type"])] += 1
    print("7:30〜8:00 に出た緑の便 %d 便の問題（走っている間）：%s（合計 %d）" % (n, line(c), sum(c.values())))


def main():
    b143 = {k: one(v) for k, v in R143.items()}
    b147 = {k: one(v) for k, v in R147.items()}
    b149 = {k: one(v) for k, v in R149.items()}
    b154 = {k: one(v) for k, v in R154.items()}
    b155 = {k: one(v) for k, v in R155.items()}
    for run in sys.argv[1:]:
        a = one(run)
        s = a["s"]
        key = "switch" if s["plan_key"] == "switch" else "hall"
        print()
        print("== %s（%s）status %s／回の終わり %.1f 秒（%s）／最後の便が戻った %.1f 秒／実時間 %.1f 分" % (
            os.path.basename(run), s["plan"], s["status"], s["sim_s"], hm(s["sim_s"]), s["last_trip_end_s"], s["wall_s"] / 60))
        print("便 %d（走った %d・途中 %d・走れなかった %d）／移る %d（終えた %d）／出るのが遅れた 平均 %.1f 秒・最大 %.1f 秒" % (
            s["trips_scheduled"], s["trips_done"], s["trips_unfinished_at_end"], s["trips_not_run_after_end"] + s["trips_not_run_other"],
            s["moves"], s["moves_done"], s["delay_mean_s"], s["delay_max_s"]))
        print("瞬間移動 ロボット %d（1コマ最大 %.3f m）・人 %d（最大 %.3f m）／人の引き直し（180秒動けない）%d／行き先の近くで止まって待った %d" % (
            s["robot_jumps"], s["robot_max_step_m"], s["person_jumps"], s["person_max_step_m"], s.get("flow_stuck_regoes", 0), s.get("flow_near_stops", 0)))
        st = [e for e in a["ev"] if e["type"] == "4"]
        print("立ち往生 %d: %s" % (len(st), "／".join("%s〜%s秒 %s秒 (%s,%s) %s" % (e["t_s"], e["end_s"], e["value"], e["robot_x"], e["robot_z"], e["note"]) for e in st)))
        print("助け %d: %s" % (len(a["resc"]), "／".join("%s秒 (%s,%s) %s・%s" % (r["call_s"], r["x"], r["z"], r["partner"], r["outcome"]) for r in a["resc"])))
        print("ロボットの入らない所に中心が入った時間 %.2f 秒／どの所にも入っていない時間 %.2f 秒" % (s["robot_forbidden_s"], s["robot_no_zone_s"]))
        if s.get("people_mode") == "flow":
            print("人が access で入れない所に入った時間（役割ごと）：", "・".join("%s %.2f 秒" % (r, s["flow_forbidden_s_" + r]) for r in ROLES))
            print("どの所にも入っていない時間（役割ごと）：", "・".join("%s %.2f 秒" % (r, s["flow_no_zone_s_" + r]) for r in ROLES))
            print("職員 %d 人／持ち場から動いた %d 回・看護師が呼びに出た %d 回（看護師なし %d・間に合わない %d）" % (
                s["flow_staff_total"], s["flow_staff_moves"], s["flow_nurse_calls"], s["flow_nurse_calls_no_nurse"], s["flow_nurse_late"]))
            print("席 %d（使えない %d）・机などの横の点 %d・診察室 %d／所 %d 枚・区画 %d／壁の箱 %d・家具の箱 %d" % (
                s["flow_seats"], s["flow_seats_dropped"], s["flow_spots"], s["flow_consult_rooms"], s["flow_pieces"], s["flow_areas"], s["flow_wall_boxes"], s["flow_furniture_boxes"]))
            print("飛ばした行き先（理由）：", s["flow_skips"])
            people(run, s)
            chemo155(run, s)
            staff157(run, s, a)
            zones_table(run, s, R155[key])
            prob(a, b143[key], b147[key], b149[key], b154[key], b155[key])
            partners157(run, a, b155[key])
            stall157(run)
            green_early(run, a)
            lc = Counter()
            for e in a["ev"]:
                d = a["legs"][e["leg_id"]]["dir"] if e["leg_id"] in a["legs"] else ""
                lc[d] += 1
            print("   区間ごとの数（全部の種類）：", "・".join("%s %d" % kv for kv in lc.items()))
            for k in range(1, 7):
                if a["kinds"][k]: print("   相手 %d %s: %s" % (k, TN[k], "・".join("%s %d" % kv for kv in a["kinds"][k].most_common())))


if __name__ == "__main__":
    main()
```

#### cmp157.py（記録の md5 を比べるスクリプト）

```python
#!/usr/bin/env python3
"""依頼157：2つの回のフォルダの記録（csv）の md5 と summary.json の違う項目を比べる。python3 cmp157.py <A> <B> [名前]"""
import hashlib, json, os, sys
a, b = sys.argv[1], sys.argv[2]
name = sys.argv[3] if len(sys.argv) > 3 else os.path.basename(a) + " vs " + os.path.basename(b)
fa = sorted(f for f in os.listdir(a) if f.endswith(".csv") and not f.startswith("._"))
fb = sorted(f for f in os.listdir(b) if f.endswith(".csv") and not f.startswith("._"))
md = lambda p: hashlib.md5(open(p, "rb").read()).hexdigest()
same = [f for f in fa if f in fb and md(os.path.join(a, f)) == md(os.path.join(b, f))]
diff = [f for f in fa if f in fb and f not in same]
only = sorted(set(fa) ^ set(fb))
sa = json.load(open(os.path.join(a, "summary.json"), encoding="utf-8")); sb = json.load(open(os.path.join(b, "summary.json"), encoding="utf-8"))
ks = sorted(k for k in set(sa) | set(sb) if sa.get(k) != sb.get(k))
print("== " + name)
print("同じ %d：%s" % (len(same), "・".join(same)))
print("違う %d：%s" % (len(diff), "・".join(diff)))
if only: print("片方だけ：", "・".join(only))
print("summary.json の違う項目：", ", ".join(ks))
```

#### run157.sh（確かめの回を回すスクリプト）

```bash
#!/bin/bash
# 依頼157：確かめの回（h1・人の動き flow・0.6m/秒）。廊下だけ 種0 を2回（check157a・b）、時間で切替 種0（check157c）、
# 見た目あり・カメラなしの廊下だけ 種0（check157L。見た目なしの check157a と同じ記録になるか）、
# -h147People hall（依頼143 の形）で廊下だけ（h143repro157。依頼143 の check143a と同じ記録になるか）、
# 廊下だけ 種8（check157s8。補助者が歩いて運ぶ回が2回ある種）
cd /Users/shimazueiichi/Robotics_UX/ServiceSim
O=/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_staff157
EXE=Builds/hospital157/HospitalSim.app/Contents/MacOS/ServiceSim
CS=$(python3 -c "import json;print(json.load(open('Builds/hospital157/build_info.json'))['unity_cs'])")
run() { L=$1; shift; $EXE -batchmode -nographics -h143Layout h1 -h127Speed 0.6 -h127Out $O/runs -h127Cs $CS -h136Mode day -h138Mode 138 -h127Label $L -h127MaxWallMin 200 "$@" -logFile $O/logs/$L.log; echo "$L exit $?" >> $O/logs/run157.exit; }
run check157a -h127Seed 0 -h147People flow -h136Plan hall &
run check157b -h127Seed 0 -h147People flow -h136Plan hall &
run check157c -h127Seed 0 -h147People flow -h136Plan switch &
run check157L -h127Seed 0 -h147People flow -h136Plan hall -h139Look on -h140Scheme A -h143Wheelchair on &
run h143repro157 -h127Seed 0 -h147People hall -h136Plan hall &
run check157s8 -h127Seed 8 -h147People flow -h136Plan hall &
wait
echo done >> $O/logs/run157.exit
```

#### test157.sh（試しの回を回すスクリプト）

```bash
#!/bin/bash
# 依頼157：試しの回（check-in の前の試しの実行ファイル）。見た目なし・0.6m/秒。引数：ラベル 実行ファイルの名前 そのほかの引数
cd /Users/shimazueiichi/Robotics_UX/ServiceSim
O=/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_staff157
L=$1; T=$2; shift; shift
EXE=$O/test/$T/HospitalSim.app/Contents/MacOS/ServiceSim
B="-batchmode -nographics -h143Layout h1 -h147People flow -h127Speed 0.6 -h127Out $O/test -h127Cs test -h136Mode day -h138Mode 138 -h127MaxWallMin 200"
$EXE $B -h127Label $L "$@" -logFile $O/logs/$L.log
echo "$L exit $?" >> $O/logs/test157.exit
```

#### paths157.py（1日の早回しの動画のカメラの道を作るスクリプト）

```python
#!/usr/bin/env python3
"""依頼157（paths155.py の写し：カメラは cams157。寄り 外来の大廊下の清掃 は、7:30〜8:00 のうち清掃の人が寄りの枠（x26〜70）の中の大廊下の点で拭いている（1人でも）、7:40 にいちばん近い時刻（extra157.csv の「着いた：拭く1〜4」から、その点で止まる秒のあいだ））。もとの説明：依頼155（paths154.py の写し：カメラは cams155。寄り 化学療法のトイレの前 は、その日はじめに化学療法のトイレへ行く化学療法の患者が、トイレの前の通り道 x114〜115.5・z53〜60 に入って 1 秒後）。もとの説明：依頼154（paths149.py の写し：カメラは cams154。寄り 救急の待合・正面玄関から救急へ行く道 は、10:00 ごろ・14:00 ごろの窓の中で、救急の患者が正面玄関から救急の待合へ歩いている人数がいちばん多い分）。もとの説明：依頼149（paths147.py の写しを直した：静止画は cams149 の6つを 10:00 ごろ・14:00 ごろの2回）。もとの説明：依頼147（paths143.py の写しを直した）：撮る回のカメラの道（-h141CamPath の CSV）を、確かめの回 check143a（同じ種・同じ実行ファイル）から作る。

flowday（1日の早回し。依頼141 の paths141.py と同じ作り）：0.05 秒から、ふだん 1.2 秒ごと（30倍）で引き。
  ロボットが走っている間（legs の 行き・帰り・移る。続いている区間はつなぐ）は 0.2 秒ごと（5倍）で付いて行く寄り
  （左30°・75°見下ろし・距離 27.9 m・注視点＝ロボットの位置を σ1.5 秒でならした点）。最初と最後の 25 コマで引き⇄寄り（smoothstep）。
  引きは、そのときロボットのいる側（x<60 は西半分、それ以外は東半分。cams143.py の w_west・w_east）。最後の便が戻ったところで終わる
静止画（cams143.py の8つ）：1行だけの道（その時刻に1枚）。時刻は下の STILLS（ロボットが台の前に止まっている時刻など）

  python3 paths143.py <check143a> <出力.csv> <cams.txt>
"""
import csv, json, math, os, re, sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from paths141 import Follow, load_track, smooth, g, NEAR, FOV, W, H, TRANS
from cams143 import cams as cams143
from cams157 import cams as cams149, still_cams
from collections import defaultdict

SPLIT_X = 60.0


def main():
    run, dst, camtxt = sys.argv[1], sys.argv[2], sys.argv[3]
    T, X, Z = load_track(run)
    fo = Follow(T, X, Z)
    C = {c[0]: c for c in cams143()}
    WIDE = {"west": dict(tx=C["w_west"][3], tz=C["w_west"][4], dist=C["w_west"][5]),
            "east": dict(tx=C["w_east"][3], tz=C["w_east"][4], dist=C["w_east"][5])}
    legs = list(csv.DictReader(open(run + "/legs.csv", encoding="utf-8")))
    trips = list(csv.DictReader(open(run + "/trips.csv", encoding="utf-8")))
    last = max(float(t["end_s"]) for t in trips if t["end_s"])
    # 走っている区間（行き・帰り・移る）をつなぐ
    wins = []
    for l in legs:
        if l["dir"] not in ("行き", "帰り", "移る"): continue
        s, e = float(l["start_s"]), float(l["end_s"])
        if wins and s - wins[-1][1] < 2.0: wins[-1][1] = e
        else: wins.append([s, e])
    side = lambda t: "west" if fo.raw(t)[0] < SPLIT_X else "east"

    def blend(a, wide, near_xz):
        tx = wide["tx"] + a * (near_xz[0] - wide["tx"])
        tz = wide["tz"] + a * (near_xz[1] - wide["tz"])
        d = math.exp(math.log(wide["dist"]) + a * (math.log(NEAR["dist"]) - math.log(wide["dist"])))
        return tx, tz, d

    rows = []
    t, wi = 0.05, 0
    while True:
        if wi < len(wins) and t >= g(wins[wi][0]) - 1e-6:
            s0, e0 = g(wins[wi][0]), wins[wi][1]
            n = int(math.ceil((g(e0) - s0) / 0.2 - 1e-6))
            ts = [g(s0 + 0.2 * k) for k in range(n + 1)]
            w_in, w_out = WIDE[side(s0)], WIDE[side(e0)]
            for k, tt in enumerate(ts):
                a_in = smooth((k + 1) / TRANS); a_out = smooth((len(ts) - k) / TRANS)
                a = min(a_in, a_out)
                wide = w_in if k < len(ts) / 2 else w_out
                tx, tz, d = blend(a, wide, fo.at(tt))
                rows.append(("flowday", tt, tx, tz, d, "5倍", a, side(s0) if k < len(ts) / 2 else side(e0)))
            t = ts[-1]
            wi += 1
            if t >= last - 1e-6 or wi == len(wins): break
            t = g(t + 1.2)
            continue
        sd = side(t)
        rows.append(("flowday", t, WIDE[sd]["tx"], WIDE[sd]["tz"], WIDE[sd]["dist"], "30倍", 0.0, sd))
        nt = g(t + 1.2)
        if wi < len(wins) and nt > g(wins[wi][0]): nt = g(wins[wi][0])
        t = nt
    # 静止画の時刻（依頼149）：確かめの回の zones147.csv（1分ごとの所ごとの人数）から、9:30〜10:30・13:30〜14:30 で人がいちばん多い分
    zl = list(csv.DictReader(open(run + "/zones147.csv", encoding="utf-8")))
    tot = defaultdict(int)
    for r in zl:
        tot[float(r["t_s"])] += int(r["patients"]) + int(r["staff"])
    pick = lambda d, a, b, c: max((t for t in d if a <= t <= b), key=lambda t: (d[t], -abs(t - c)))
    t10 = pick(tot, 7200.0, 10800.0, 9000.0)
    t14 = pick(tot, 21600.0, 25200.0, 23400.0)
    # 救急の患者：正面玄関に出てから救急の待合に着くまで（歩いている）・救急の待合にいる間
    walk, wait = [], []
    for p in csv.DictReader(open(run + "/people147.csv", encoding="utf-8")):
        if p["what"] != "救急の患者" or not p["spawn_s"]: continue
        st = p["steps"].split("|")[0].split(":")
        if len(st) >= 4 and st[2]:
            walk.append((float(p["spawn_s"]), float(st[2])))
            wait.append((float(st[2]), float(st[3]) if st[3] else 1e9))
    er = {}
    for t in tot:
        er[t] = (sum(1 for a, b in walk if a <= t < b), sum(1 for a, b in wait if a <= t < b))
    def pick_er(a, b, c, k):
        ts = [t for t in er if a <= t <= b]
        best = max(ts, key=lambda t: (er[t][k], er[t][1 - k], -abs(t - c)))
        return best
    STILLS = {}
    for n, c, tk in still_cams():
        lo, hi, mid, lab = (7200.0, 10800.0, 9000.0, "9時30分〜10時30分") if tk == "10" else (21600.0, 25200.0, 23400.0, "13時30分〜14時30分")
        if tk == "clean":
            sm = json.load(open(run + "/summary.json", encoding="utf-8"))
            wipe = {}
            for nt in sm.get("flow_notes157", []):
                m = re.match(r"清掃の人 (\d+)：.*1点で止まる ([\d.]+) 秒", nt)
                if m: wipe[m.group(1)] = float(m.group(2))
            iv = []
            for r in csv.DictReader(open(run + "/extra157.csv", encoding="utf-8")):
                m = re.match(r"着いた：拭く(\d+)$", r["what"])
                if r["who"] == "清掃の人" and m and int(m.group(1)) <= 4 and float(r["t_s"]) < 1800 and 26.0 <= float(r["x"]) <= 70.0:   # 寄りの枠（x26〜70）の中の大廊下の点
                    a = float(r["t_s"]); iv.append((r["idx"], a, a + wipe[r["idx"]]))
            best = None
            for k in range(0, 1800):
                tt = float(k)
                cnt = len(set(i for i, a, b in iv if a <= tt < b))
                key = (cnt >= 1, -abs(tt - 600.0), cnt)          # 1人でもいて、7:40 にいちばん近い時刻
                if best is None or key > best[0]: best = (key, tt)
            (_, _, cnt), tt = best
            STILLS[n] = (g(tt), "7:40 ごろ：清掃の人がカートを押して外来の大廊下を拭いている（枠の中の大廊下の点で止まっている清掃の人 %d 人）" % cnt)
            continue
        if tk == "wc":
            tl = [r for r in csv.DictReader(open(run + "/toilet149.csv", encoding="utf-8")) if r["what"] == "化学療法の患者" and r["toilet"] == "化学療法のトイレ"]
            first = min(tl, key=lambda r: float(r["leave_seat_s"]))
            wy = {r["id"]: r for r in csv.DictReader(open(run + "/chemo_way155.csv", encoding="utf-8")) if r["what"] == "化学療法の患者"}
            tt = float(wy[first["id"]]["first_s"]) + 1.0
            assert float(first["leave_seat_s"]) < tt < float(first["arrive_s"]), (first, tt)
            STILLS[n] = (g(tt), "化学療法の患者がトイレへ向かっている（席を立った %s 秒・トイレに着いた %s 秒）" % (first["leave_seat_s"], first["arrive_s"]))
            continue
        if n.startswith("n_er"):
            k = 0 if n.startswith("n_erway") else 1
            tt = pick_er(lo, hi, mid, k)
            STILLS[n] = (g(tt), ("%s で救急の待合に救急の患者がいちばん多い分（%d 人）" % (lab, er[tt][1])) if k == 1 else
                         ("%s で正面玄関から救急へ歩く救急の患者がいる分（%d 人）" % (lab, er[tt][0])))
            continue
        tt = t10 if tk == "10" else t14
        STILLS[n] = (g(tt), "%s で人がいちばん多い分（%d 人）" % (lab, tot[tt]))
    SC = {n: c for n, c, tk in still_cams()}
    with open(dst, "w", newline="") as f:
        w = csv.writer(f)
        w.writerow(["cam", "t_s", "tx", "tz", "dist"])
        for c, tt, x, z, d, sp, a, sd in rows:
            w.writerow([c, "%.2f" % tt, "%.4f" % x, "%.4f" % z, "%.4f" % d])
        for n in STILLS:
            c = SC[n]
            w.writerow([n, "%.2f" % STILLS[n][0], "%.4f" % c[3], "%.4f" % c[4], "%.4f" % c[5]])
    with open(dst.replace(".csv", "_meta.csv"), "w", newline="") as f:
        w = csv.writer(f)
        w.writerow(["cam", "t_s", "speed", "near_a", "side"])
        for c, tt, x, z, d, sp, a, sd in rows:
            w.writerow([c, "%.2f" % tt, sp, "%.4f" % a, sd])
    with open(dst.replace(".csv", "_stills.csv"), "w", newline="") as f:
        w = csv.writer(f)
        w.writerow(["cam", "t_s", "what"])
        for n, (tt, what) in STILLS.items():
            w.writerow([n, "%.2f" % tt, what])
    with open(camtxt, "w") as f:
        x0, z0 = WIDE["east"]["tx"], WIDE["east"]["tz"]
        f.write("flowday,30,75,%.4f,%.4f,%.4f,%d,%d,%d\n" % (x0, z0, WIDE["east"]["dist"], FOV, W, H))
        for n, c, tk in still_cams():
            f.write("%s,%g,%g,%.2f,%.2f,%.1f,%d,%d,%d\n" % (n, c[1], c[2], c[3], c[4], c[5], FOV, W, H))
    n5 = sum(1 for r in rows if r[5] == "5倍")
    print("flowday %d コマ（%.1f 秒＝%.1f 分。5倍 %d・30倍 %d）〜%.2f／走っている区間 %d" % (len(rows), len(rows) / 25, len(rows) / 25 / 60, n5, len(rows) - n5, rows[-1][1], len(wins)))
    for n, (tt, what) in STILLS.items(): print(n, tt, what)


if __name__ == "__main__":
    main()
```

#### cams157.py（静止画のカメラの値を書き出すスクリプト）

```python
#!/usr/bin/env python3
"""依頼157：カメラ（-h139Cam の値）。依頼155 の9つ（cams155.py）に、寄り1つを足す（左30°・75°見下ろし。距離と注視点は依頼139 の camfit139.py と同じ決め方）：
  外来の大廊下の清掃（x26〜70・z17〜31.5：大廊下と、総合受付・会計の待合の北の側）。
静止画は依頼155 の17枚に、7:40 ごろの n_clean（清掃の人とカート）を足す。補助者が歩いて運ぶ回は、撮る回（廊下だけ・0.6m/秒・種0）の時刻表に無いので撮らない"""
import os, sys
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
from camfit139 import fit
from cams155 import cams as cams155, still_cams as still155

NEAR = [("n_clean", "寄り・外来の大廊下の清掃", (26.0, 70.0, 17.0, 31.5))]


def cams():
    out = list(cams155())
    for key, ja, (x0, x1, z0, z1) in NEAR:
        tx, tz, d = fit(30.0, 75.0, x0, x1, z0, z1)
        out.append((key, 30.0, 75.0, tx, tz, d, ja, (x0, x1, z0, z1)))
    return out


def still_cams():
    C = {c[0]: c for c in cams()}
    return list(still155()) + [("n_clean", C["n_clean"], "clean")]


if __name__ == "__main__":
    for n, yaw, p, tx, tz, d, ja, rng in cams():
        if len(sys.argv) > 1 and sys.argv[1] == "table":
            print("%s\t%s\t方位%g 見下ろし%g\t範囲 x%g〜%g z%g〜%g\t注視点(%.2f, %.2f)\t距離 %.1f" % (n, ja, yaw, p, rng[0], rng[1], rng[2], rng[3], tx, tz, d))
        else:
            print("%s,%g,%g,%.2f,%.2f,%.1f,40,2720,2160" % (n, yaw, p, tx, tz, d))
```

#### sheet157.py（静止画を並べた図を作るスクリプト）

```python
#!/usr/bin/env python3
"""依頼157：静止画18枚（依頼155 の17枚＋5段目に 寄り 外来の大廊下の清掃）。もとの説明：依頼155：静止画17枚（依頼154 の16枚＋5段目に 寄り 化学療法のトイレの前）。もとの説明：依頼154：静止画16枚（パネル付き）を1枚に並べる（上の2段＝10:00 ごろ、下の2段＝14:00 ごろ。各段4枚：真上の全体・引き 西半分・引き 東半分・寄り エレベーターホール／
寄り 中待合・総合受付と会計の待合・救急の待合・正面玄関から救急へ行く道）
  python3 sheet157.py <静止画のフォルダ> <camspath157_stills.csv> <出力.png>"""
import csv, os, sys
from PIL import Image, ImageDraw
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
import pan140 as P
from cams157 import cams, still_cams

src, stills, dst = sys.argv[1:4]
what = {r["cam"]: (float(r["t_s"]), r["what"]) for r in csv.DictReader(open(stills, encoding="utf-8"))}
ja = {c[0]: c[6] for c in cams()}
sc = [x for x in still_cams() if x[0] in what]
tw, th, cap = 960, 540, 64
sheet = Image.new("RGB", (tw * 4 + 50, (th + cap) * 5 + 90), (255, 255, 255))
d = ImageDraw.Draw(sheet)
d.text((10, 34), "依頼157　病院 h1・人の動き（職員は持ち場ごとの型と用事・清掃と警備の人）・廊下だけ・0.6m/秒・種0・色A　1〜2段＝10時ごろ・3〜4段＝14時ごろ・5段＝化学療法のトイレの前・7:40 ごろの清掃",
       font=P.font(True, 30), fill=P.INK, anchor="lm")
mark = "①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱"
for k, (n, c, tk) in enumerate(sc):
    im = Image.open(os.path.join(src, "still157_%s.png" % n)).convert("RGB").resize((tw, th), Image.LANCZOS)
    x, y = 10 + (k % 4) * (tw + 10), 70 + (k // 4) * (th + cap)
    sheet.paste(im, (x, y))
    t, w = what[n]
    d.text((x + 4, y + th + 22), "%s　%s" % (mark[k], ja[c[0]]), font=P.font(True, 24), fill=P.INK, anchor="lm")
    cap2 = "%s（%.2f 秒）　%s" % (P.clock(t), t, w)
    fs = 20
    while fs > 12 and d.textlength(cap2, font=P.font(False, fs)) > tw - 8: fs -= 1     # 依頼157：枠の幅に収まるまで字を小さくする
    d.text((x + 4, y + th + 50), cap2, font=P.font(False, fs), fill=P.GRAY, anchor="lm")
sheet.save(dst)
print(dst, sheet.size)
```

### 受け取る人がロボットに会えない・大廊下の人が減ったなど、4つが残った

| 残ったこと | 中身 | 決めた直し方 |
|---|---|---|
| 受け取る人がロボットに会えない | ロボットは届け先で待たずに戻り、受け取る職員が台に着く頃にはもういない。試算の決まり（受け取る人が来るまで待つ）と合っていない | 届け先で、受け取る人が降ろし終わるまでロボットは動かない |
| 大廊下の人が減った | 混んでいる時間帯の平均が1.4人から0.9人（目安は2〜8人）。くじ引きの行き来が無くなった分を、清掃・警備・ほかの階の職員では埋められなかった | 人を増やす動きは足さず、患者の動きの直しで増える分を見る |
| 通り抜ける人が出ていない | ほかの階の職員の通り抜ける人90人のうち64人が出ていない。フロアの形で、正面玄関に入れる職員が事務だけだった | 職員の全部の役割が正面玄関を通れるようにする |
| 60秒以上動けなかった人が6件 | 総合受付の前や中待合の人の混みで、杖の人と車いすが75〜120秒。持ち場に立つ案内の人のそばの車いす117秒、救急室の台の前で待つロボットと看護師の間の医師112秒 | 立って待つ点を通り道から外す。車いすや杖の人が来たら、立っている人が半歩よける |


## 作業ログ ― 動画を見て、呼ぶ場面と積む・受け取るが見えないと分かる

### 依頼155 の動画では、だれもロボットを呼ばず、積む人も受け取る人もいなかった

サイトの /series8 の搬送（病院）のタブに、1日の早回しと、問題の場面に寄る短い動画の両方を載せることになりました。載せる前に動画を確かめたい、という指示があり、依頼155 の32分の動画から、朝の緑の便・外来の山場の青の便・昼の赤の便の3場面を2分30秒に切り出して見せました。

![依頼155 の動画の1コマ（11時07分、4便目の赤の便が薬剤部から化学療法室へ出た所）。白い丸がロボット、赤い箱が薬剤部の払い出し台。台のまわりに、積んだ人は見えない](https://pixelstomotors.com/media/LOG491_03_video155_red_trip.png)

> ロボットが動く時はどこからか呼ばれて動いている？
> 人から荷物を受け取ったり、渡したりしていないように思うけど？

そのとおりでした。依頼は試算の中の数字で、場面の中にはありません。試算が、1時間あたり決まった数でばらばらに出る依頼（採血管の袋など）を作り、4室が満杯か、いちばん古い依頼が10分待つか、至急が出ると出発します。Unity はその出発時刻の表を読んで走らせていただけで、台の前では積む時間と降ろす時間だけ止まり、人は寄ってきませんでした。

依頼157 で、便ごとに職員が台へ来て積む・受け取る動きを入れました。積む側は出発前に職員が台へ来ています。ただし、ロボットが出るまでカメラが引きのままなので、動画では積む人を見分けられません。受け取る側は、上の表のとおり、職員が台に着く頃にはロボットがいませんでした。

![依頼157 の動画の、3便目の青の便が内科の処置室を出る瞬間（9時57分）。左の赤い箱が台、白い輪がロボット。カメラが引きのままで、台の横に立つ積む人を見分けられない](https://pixelstomotors.com/media/LOG491_04_loading_point157.png)

見せ方は、次の3つを入れることに決まりました。

| いつ | 画面に出すもの |
|---|---|
| 依頼が出た時 | 頼んだ持ち場に印（至急は色を変える）。パネルに、待っている荷物の数と、いちばん古い依頼が待っている時間 |
| 積む時・渡す時 | 人がロボットの横に立っている間、パネルに「積んでいる」「受け取っている」。運んでいる荷物の数 |
| 受け取りを待つ時 | 届け先でロボットが受け取る人を待っている秒 |

### ロボットの速さは0.6m/秒のまま、あとで替えられる作りにする

サイトのタブの試算は、ロボットの速さが0.6・0.9・1.2m/秒の3つで、最初の表示が0.9m/秒です。Unity は0.4・0.5・0.6・0.8m/秒の4つ（上限の0.8 は機体 [KEENON の W3](https://www.keenon.com/jp/product/W3) の公表値）で、1日を通して撮る回はずっと0.6m/秒で回してきました。なぜ0.6 だったのかは、記録に残っていませんでした。タブは病院編を始める前に作った試作の版のままで、Unity は後から作った試算を読んでいるため、速さの選択肢そのものがずれています。

> ロボットのスピードは今は0.6でいいです（将来的に可変にします。病院の混み具合やスタッフや医師の人数も可変できるようにします）

タブの試算には今は手を付けず、動画の下に撮った条件を書くことにしました。速さ・混み具合・人数は、Unity の中で決め打ちにせず、サイトの条件から読む形にそろえます。


## 次の依頼158 で直すことと、患者の動きの表

### 患者・付き添い・見舞いの人の動きを、種類ごとの表にした

職員と同じ形で、患者の側も表にしました。根拠があるのは採血と化学療法の流れで、ほかは仮置きです。救急車で来る人は、フロアの形に救急の入口が無いので今回は見送りました。

| 番号 | だれ | 前の動き | 直した動き |
|---|---|---|---|
| P1 | 外来の患者の採血 | 採血へ行くのは全体の15% | 全部の科で5割が、診察の前に採血へ（待ち10〜40分） |
| P2 | 外来の患者の待つ場所 | 診察までずっと中待合 | 番が近づくまで外の待合、呼ばれたら中待合へ |
| P3 | 検査の待ち | 待ち0分 | 待合で5〜20分 |
| P4 | 化学療法の患者 | 受付0分ですぐ点滴 | 採血・診察・待合で約1時間・点滴の順 |
| P5 | 救急の患者 | 待合と処置が同じ長さ | 時間を分け、3割が X線室へ |
| P9 | 見舞いの人 | 通り抜けるだけ | 総合受付に1分寄る |

採血の5割は、[獨協医科大学埼玉医療センター（890床）の外来採血室の報告](https://www.jstage.jst.go.jp/article/jamt/73/2/73_23-100/_html/-char/ja)（外来1日約1,300人のうち採血約700人）から、化学療法の約1時間は、[国立がん研究センター中央病院の通院治療センターの案内](https://www.ncc.go.jp/jp/ncch/division/outpatient_treatment_center/first_round/index.html)（席に案内されるまで通常1時間程度）から取りました。

#### patient_classification.md（患者・付き添い・見舞いの人の動きの台帳の全文）

```markdown
# 病院の Unity：患者・付き添い・見舞いの人の動きの表

最終更新：2026-11-12（案。エイイチの了承待ち。まだサイトの条件には入れていない）
職員の表は staff_classification.md。元の洗い出しは flow155/people_issues_155.md。

| 番号 | だれ | 人数（1日） | 今の動き | 直す案 | 根拠 | 効き目 | 状況 |
|---|---|---|---|---|---|---|---|
| P1 | 外来の患者：採血 | 390 | 採血へ行くのは内科の半分だけ（全体の15%） | 全部の科で5割が、診察の前に採血へ行く。採血の待ちは10〜40分 | 獨協医科大学埼玉医療センター（890床）：外来1日約1,300人のうち採血約700人。待ちは平均41分（仕組みを入れた後は10分） | 大。採血の所は青の道の積む所で、大廊下を歩く人も増える | 了承待ち |
| P2 | 外来の患者：待つ場所 | 390 | 診察までずっと中待合に座る（中央値40分・最大約2時間） | 番が近づくまで外の待合（総合受付・会計の待合）で待ち、呼ばれたら中待合へ移る（中待合は10〜15分） | 根拠なし（仮置き）。中待合は呼ばれた人が入る所、という一般的な使い方 | 大。大廊下を歩く回数が1人あたり1回増える | 了承待ち |
| P3 | 外来の患者：検査の待ち | 95 | 生理検査・処置の待ちが0分 | 待合で5〜20分待つ | 根拠なし（仮置き） | 小 | 了承待ち |
| P4 | 化学療法の患者 | 20 | 受付0分で、すぐ点滴 | 採血 → 診察（内科の診察室）→ 化学療法の待合で約1時間 → 点滴。付き添いは外来と同じ3割。点滴中のトイレは1〜2回 | 国立がん研究センター中央病院の案内：検査 → 診察 → 通院治療センター、席に案内されるまで通常1時間程度。付き添いとトイレの回数は仮置き | 中。薬の調製を待つ時間が、赤の便の待ちと同じ時間に重なる | 了承待ち |
| P5 | 救急の患者 | 18 | 全員が歩いて正面玄関から。待合と処置が同じ長さ | 待合10〜60分・処置60〜120分に分ける。3割がX線室へ行く。5割に付き添い | 根拠なし（仮置き）。歩いて来る人と救急車の割合の公開の数字は見つからなかった | 中。救急室は緑の道の積む所 | 了承待ち |
| P6 | 救急車で来る人 | 0 | いない | フロアの形に救急の入口が無いので、今回は入れない。入れるならフロアの形を先に直す | － | 中 | 見送り（相談） |
| P7 | 病棟の患者と看護師 | 各54 | X線室への道が救急の待合を通り抜ける | 依頼157 の記録（動けなかった人のまわり）を見てから決める | － | 中 | 依頼157 待ち |
| P8 | 付き添い | 192 | 患者と同じ動き | 今のまま | － | 小 | － |
| P9 | 見舞いの人 | 105 | 玄関とエレベーターの間を通り抜けるだけ | 総合受付に1分寄ってから行く（面会の手続き） | 根拠なし（仮置き） | 小 | 了承待ち |

## 根拠にした資料
- 獨協医科大学埼玉医療センターの外来採血室の報告（医学検査 73巻2号）https://www.jstage.jst.go.jp/article/jamt/73/2/73_23-100/_html/-char/ja
- 国立がん研究センター中央病院 通院治療センターの案内 https://www.ncc.go.jp/jp/ncch/division/outpatient_treatment_center/first_round/index.html
```

### 依頼158 に向けて、サイトの条件に3回に分けて入れたもの

依頼158 の前に、正であるサイト側を先に直しました。試算には、依頼が出た時刻・便ごとの荷物の数・届け先で受け取る人を待つ秒を記録させて書き出すようにしています（記録を足しただけで、便の時刻も結果も変わりません）。撮る回（種0）の依頼は1日29件で、赤20件・青6件・緑3件です。

#### diff_3c7927b.txt（commit 3c7927b の差分。呼ぶ場面と荷物の見せ方・依頼が出た時刻の書き出し）

```diff
commit 3c7927b 病院：呼ぶ場面と荷物の見せ方（request_view）を足し、依頼が出た時刻・便の荷物の数・受け取りを待つ秒を書き出すようにした

diff --git a/tools/hospital_sim/README.md b/tools/hospital_sim/README.md
index 7c26407..5313cbf 100644
--- a/tools/hospital_sim/README.md
+++ b/tools/hospital_sim/README.md
@@ -78,3 +78,7 @@ Unity 依頼134 で、外来の混む時間は裏口の道で廊下の問題が
 - `people_flow.elevator_traffic` のほかの階の職員を、運ぶ人・通り抜ける人・用事で来る医師に分けた（3：5：2。仮置き）
 - `people_flow.cleaning_security` を足した（清掃の人2人・警備の人2人。仮置き）
 - 分け方と用事の台帳は iCloud の `hospital/staff_classification.md`
+
+## 呼ぶ場面と荷物を画面に出すための書き出し（2026-11-12）
+
+依頼155 の動画で、ロボットがどこから呼ばれて動いているのか、人から荷物を受け取ったり渡したりしているのかが分からなかった。`unity.request_view`（見せ方の決まり）を足し、`day_schedule.requests_all`（依頼が出た時刻・至急・どの便で運ばれたか）を書き出すようにした。`trips_all` の各便に `items`（荷物の数）と `pickup_wait_s`（届け先で受け取る人を待つ秒）を足した。試算は記録を足しただけで、便の時刻も結果も変わらない。
diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json
index 03cfe4e..4d200ce 100644
--- a/tools/hospital_sim/assumptions.json
+++ b/tools/hospital_sim/assumptions.json
@@ -1362,6 +1362,19 @@
     "n": null,
     "updated": "2026-11-11"
    }
+  },
+  "request_view": {
+   "value": {
+    "依頼が出た時": "頼んだ持ち場（積む所）に印を出す（至急は色を変える）。パネルに、道ごとの待っている荷物の数と、いちばん古い依頼が待っている時間を出す。時刻は requests_all",
+    "積む時・渡す時": "人がロボットの横に立っている間、パネルに『積んでいる』『受け取っている』と出す。運んでいる荷物の数（trips_all の items）も出す",
+    "受け取りを待つ時": "届け先でロボットが受け取る人を待っている時間（trips_all の pickup_wait_s）を、パネルと場面で分かるようにする（待っている秒を数える）。受け取る人はその時間が過ぎてから台へ来る",
+    "人が運ぶ時": "staff_walks_all の回は、運んでいる人に印を付け、パネルに『人が運んでいる』と出す"
+   },
+   "what": "呼ぶ場面と荷物の見せ方（Unity の画面とパネル）",
+   "basis": "決まり",
+   "source": "2026-11-12 エイイチ：依頼155 の動画を見て、ロボットがどこから呼ばれて動いているのか・人から荷物を受け取ったり渡したりしているのかが分からないと指摘。この3つで進めると決定",
+   "n": null,
+   "updated": "2026-11-12"
   }
  }
 }
\ No newline at end of file
diff --git a/tools/hospital_sim/export_unity_params.py b/tools/hospital_sim/export_unity_params.py
index 50ba11e..94f1716 100644
--- a/tools/hospital_sim/export_unity_params.py
+++ b/tools/hospital_sim/export_unity_params.py
@@ -29,11 +29,19 @@ def day_schedule(A):
                 d.run()
                 out["plans"][plan][str(sp)].append([{"depart": t["depart_s"], "from": t["from"]} for t in d.trip_log if t["route"] == "blue"])
                 out.setdefault("trips_all", {}).setdefault(plan, {}).setdefault(str(sp), []).append(
-                    [{"route": t["route"], "depart": t["depart_s"], "from": t["from"]} for t in d.trip_log])
+                    [{"route": t["route"], "depart": t["depart_s"], "from": t["from"], "items": t["items"],
+                      "pickup_wait_s": t.get("pickup_wait_s")} for t in d.trip_log])
+                out.setdefault("requests_all", {}).setdefault(plan, {}).setdefault(str(sp), []).append(
+                    [{"route": q["route"], "t": round(q["t"], 1), "urgent": q["urgent"], "by": q["by"],
+                      "trip": q.get("trip"), "walk": q.get("walk")} for q in sorted(d.done, key=lambda q: q["t"])])
                 out.setdefault("staff_walks_all", {}).setdefault(plan, {}).setdefault(str(sp), []).append(
                     [{"route": t["route"], "depart": t["depart_s"], "from": t["from"], "to": t["to"]} for t in d.walk_log])
     out["trips_all_what"] = ("1台のロボットが緑・青・赤の全部を回すときの便の時刻表（h3 から）。plan × 速さ × 種。"
                              "route は green/blue/red、from は積む所。道は routes_all を使う")
+    out["requests_all_what"] = ("依頼が出た時刻の表（trips_all・staff_walks_all と同じ回）。plan × 速さ × 種。t は依頼が出た時刻（7:30 からの秒）、"
+                                "urgent は至急、by は運んだもの（robot／staff）、trip は trips_all の中の何番目の便で運ばれたか（0 から）、"
+                                "walk は staff_walks_all の何番目か。trips_all の items はその便の荷物の数、pickup_wait_s は届け先で受け取る人を待つ秒。"
+                                "2026-11-12 呼ぶ場面と荷物を画面に出すために足した（request_view）")
     out["staff_walks_all_what"] = ("ロボット1台のとき、人（看護業務補助者）が歩いて運ぶ回の時刻表（試算の決まり：至急の依頼が出たとき、"
                                    "その出発地に空いているロボットがいなければ人が運ぶ）。plan × 速さ × 種。depart は 7:30 からの秒。"
                                    "from で受け取り、to へ歩いて渡し、持ち場へ戻る。2026-11-12 職員の用事の表（people_flow.staff_moves）で使う")
@@ -94,6 +102,7 @@ def main():
         "day_end_rule": U["day_end_rule"]["value"],
         "switch_move": U["switch_move"]["value"],
         "seeds": U["seeds"]["value"],
+        "request_view": U["request_view"]["value"],
         "people_flow": {k: (v if k == "about" else {kk: v[kk] for kk in ("value", "what", "basis", "source") if kk in v})
                         for k, v in U["people_flow"].items()},
         "basis": {k: U[k]["basis"] for k in ("speeds", "crowd_people", "people_mix", "stretcher_per_h")},
diff --git a/tools/hospital_sim/hospital_sim.py b/tools/hospital_sim/hospital_sim.py
index c1b8789..1dc3501 100644
--- a/tools/hospital_sim/hospital_sim.py
+++ b/tools/hospital_sim/hospital_sim.py
@@ -170,6 +170,8 @@ class Day:
         d = self.route_dist(k)
         v = self.c["staff_speed"]
         extra = self.c["staff_extra_s"]
+        for q in items:
+            q["walk"] = len(self.walk_log)
         self.walk_log.append({"route": k, "depart_s": round(self.env.now, 1), "from": self.routes[k]["from_point"],
                               "to": self.routes[k]["to_point"], "items": len(items)})
         yield self.env.timeout(d / v + extra + self.c["staff_handoff_s"])
@@ -246,11 +248,15 @@ class Day:
             items, self.queue[k] = Q[:cap], Q[cap:]
             yield self.env.timeout(self.c["load_s"])
             dest = self.routes[k]["to_point"]
-            self.trip_log.append({"route": k, "depart_s": round(self.env.now, 1), "from": home, "to": dest, "items": len(items),
-                                  "robot": i})
+            for q in items:
+                q["trip"] = len(self.trip_log)
+            trip = {"route": k, "depart_s": round(self.env.now, 1), "from": home, "to": dest, "items": len(items),
+                    "robot": i}
+            self.trip_log.append(trip)
             s, stuck = self.leg(self.dist(home, dest))
             yield self.env.timeout(s)
             pw = self.rng.expovariate(1 / self.c["pickup_wait_s"]) if self.c["pickup_wait_s"] > 0 else 0.0
+            trip["pickup_wait_s"] = round(pw, 1)  # 届け先で受け取る人を待った秒（記録だけ）
             yield self.env.timeout(pw + self.c["unload_s"])
             for q in items:
                 self.finish(q, "robot")
```

#### diff_0463a35.txt（commit 0463a35 の差分。患者の動き）

```diff
commit 0463a35 病院：患者の動きを直した（採血は全科で5割・外の待合から中待合へ・化学療法は採血と診察のあと約1時間待つ・救急の待合と処置を分ける・見舞いは受付に寄る）

diff --git a/tools/hospital_layouts/hospital_h1.json b/tools/hospital_layouts/hospital_h1.json
index 65dba9a..ff6df11 100644
--- a/tools/hospital_layouts/hospital_h1.json
+++ b/tools/hospital_layouts/hospital_h1.json
@@ -4596,6 +4596,7 @@
     ],
     "who": {
      "外来の患者": "座る",
+     "化学療法の患者": "座る",
      "看護師": "入る",
      "医師": "入る",
      "検査技師": "入る",
@@ -4668,6 +4669,7 @@
     ],
     "who": {
      "外来の患者": "座る",
+     "化学療法の患者": "座る",
      "看護師": "入る"
     },
     "note": "看護師が呼び入れる"
@@ -4685,6 +4687,7 @@
     ],
     "who": {
      "外来の患者": "座る",
+     "化学療法の患者": "座る",
      "看護師": "入る",
      "医師": "座る"
     },
diff --git a/tools/hospital_layouts/make_hospital_h1.py b/tools/hospital_layouts/make_hospital_h1.py
index 61dc30f..3dbba7b 100644
--- a/tools/hospital_layouts/make_hospital_h1.py
+++ b/tools/hospital_layouts/make_hospital_h1.py
@@ -339,13 +339,13 @@ def check_inside():
 ROLES = ["外来の患者", "化学療法の患者", "救急の患者", "看護師", "医師", "薬剤師", "検査技師", "事務", "ロボット"]
 S_, E_ = "座る", "入る"
 ACCESS = [  # 名前, 部屋, [rect...], {役割: 座る|入る}, 補足
-    ("内科の処置室", "内科外来", [(0, 31, 22, 46)], {"外来の患者": S_, "看護師": E_, "医師": E_, "検査技師": E_, "ロボット": E_},
+    ("内科の処置室", "内科外来", [(0, 31, 22, 46)], {"外来の患者": S_, "化学療法の患者": S_, "看護師": E_, "医師": E_, "検査技師": E_, "ロボット": E_},
      "患者は採血のいす・処置ベッド。ロボットは台の前まで"),
     ("内科の処置室の裏の通路", "内科外来", [(11, 46, 13.1, 57.9)], {"看護師": E_, "医師": E_, "検査技師": E_, "ロボット": E_}, ""),
     ("内科の器材室", "内科外来", [(0, 46, 11, 57.9)], {"看護師": E_}, ""),
     ("内科の検体の準備室", "内科外来", [(13.1, 46, 22, 57.9)], {"看護師": E_, "検査技師": E_}, ""),
-    ("内科の中待合", "内科外来", [(22, 31, 42, 35.5)], {"外来の患者": S_, "看護師": E_}, "看護師が呼び入れる"),
-    ("内科の診察室", "内科外来", [(22, 35.5, 42, 41)], {"外来の患者": S_, "看護師": E_, "医師": S_}, ""),
+    ("内科の中待合", "内科外来", [(22, 31, 42, 35.5)], {"外来の患者": S_, "化学療法の患者": S_, "看護師": E_}, "看護師が呼び入れる"),
+    ("内科の診察室", "内科外来", [(22, 35.5, 42, 41)], {"外来の患者": S_, "化学療法の患者": S_, "看護師": E_, "医師": S_}, ""),
     ("内科の診察室の裏の通路", "内科外来", [(22, 41, 42, 43.1)], {"外来の患者": E_, "看護師": E_, "医師": E_},
      "患者は内視鏡室へ行く人だけ、看護師が付き添って通る（2026-11-11 案A）"),
     ("内視鏡室", "内科外来", [(22, 43.1, 42, 51)], {"外来の患者": E_, "看護師": E_, "医師": E_}, "検査を受ける患者だけ"),
diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json
index 4d200ce..0300ce7 100644
--- a/tools/hospital_sim/assumptions.json
+++ b/tools/hospital_sim/assumptions.json
@@ -885,19 +885,29 @@
      {
       "to": "内科の処置室",
       "stay_min": [
-       10,
-       25
+       15,
+       45
       ],
       "p": 0.5,
       "sit": true,
-      "only": "内科",
-      "what": "採血（待ちと採血）"
+      "what": "採血（待ち10〜40分と採血5分）。全部の科の患者が、診察の前にここで採血する"
+     },
+     {
+      "to": "総合受付・会計の待合",
+      "stay_min": "wait_before_consult から中待合の分を引いた残り（0 以下なら飛ばす）",
+      "p": 1.0,
+      "sit": true,
+      "what": "番が近づくまで外の待合で待つ"
      },
      {
       "to": "中待合",
-      "stay_min": "wait_before_consult",
+      "stay_min": [
+       10,
+       15
+      ],
       "p": 1.0,
-      "sit": true
+      "sit": true,
+      "what": "呼ばれたら中待合へ移り、診察を待つ"
      },
      {
       "to": "診察室",
@@ -907,21 +917,31 @@
      },
      {
       "to": "生理検査の待合→生理検査の検査室",
+      "wait_min": [
+       5,
+       20
+      ],
       "stay_min": [
        15,
        30
       ],
       "p": 0.15,
-      "sit": true
+      "sit": true,
+      "what": "wait_min は待合で待つ時間、stay_min は検査室の時間"
      },
      {
       "to": "処置・検査室",
+      "wait_min": [
+       5,
+       20
+      ],
       "stay_min": [
        10,
        20
       ],
       "p": 0.1,
-      "sit": true
+      "sit": true,
+      "what": "wait_min は中待合で待つ時間"
      },
      {
       "to": "会計の待合",
@@ -951,9 +971,9 @@
     ],
     "what": "外来の患者の行き先の順（p はその行き先へ行く人の割合）",
     "basis": "仮置き",
-    "source": "順は外来の一般的な流れ。とどまる時間の幅は仮置き。中待合は wait_before_consult、診察室は consult_min を使う",
+    "source": "順は外来の一般的な流れ。とどまる時間の幅は仮置き。中待合は wait_before_consult、診察室は consult_min を使う。2026-11-12 エイイチ了承（台帳は iCloud の hospital/patient_classification.md の P1〜P3）：採血は全部の科で5割（獨協医科大学埼玉医療センター 890床：外来1日約1,300人のうち採血約700人、待ちは平均41分・仕組みを入れた後は10分。医学検査 73巻2号 https://www.jstage.jst.go.jp/article/jamt/73/2/73_23-100/_html/-char/ja）。待つ場所を外の待合→中待合に分けた（根拠なし。依頼155 で患者が中待合に中央値40分座ったきりで、大廊下に人がいなかったため）。検査の待ち 5〜20分は根拠なし",
     "n": null,
-    "updated": "2026-11-10"
+    "updated": "2026-11-12"
    },
    "wait_before_consult": {
     "value": {
@@ -978,13 +998,56 @@
       300
      ],
      "arrival_from": "8:30",
-     "arrival_to": "13:00"
+     "arrival_to": "13:00",
+     "steps": [
+      {
+       "to": "内科の処置室",
+       "stay_min": [
+        15,
+        45
+       ],
+       "what": "採血"
+      },
+      {
+       "to": "内科の中待合→内科の診察室",
+       "wait_min": [
+        10,
+        15
+       ],
+       "stay_min": "consult_min",
+       "what": "診察（体調と検査の結果を見て、治療するかを決める）"
+      },
+      {
+       "to": "化学療法の受付・待合",
+       "stay_min": [
+        45,
+        75
+       ],
+       "what": "席に案内されるまで待つ（薬の調製を待つ時間）"
+      },
+      {
+       "to": "点滴",
+       "stay_min": [
+        120,
+        300
+       ]
+      },
+      {
+       "to": "正面玄関",
+       "stay_min": 0
+      }
+     ],
+     "companion_ratio": 0.3,
+     "toilet_times": [
+      1,
+      2
+     ]
     },
     "what": "外来化学療法の患者",
     "basis": "仮置き",
-    "source": "点滴のいす9・ベッド6（hospital_h1）で、1日に1.3回転くらい。点滴の時間は2〜5時間の幅",
+    "source": "点滴のいす9・ベッド6（hospital_h1）で、1日に1.3回転くらい。点滴の時間は2〜5時間の幅。2026-11-12 エイイチ了承（P4）：国立がん研究センター中央病院 通院治療センターの案内（https://www.ncc.go.jp/jp/ncch/division/outpatient_treatment_center/first_round/index.html）：検査→診察→通院治療センター、席に案内されるまで通常1時間程度。付き添いの割合とトイレの回数は根拠なし。フロアの形の access で、化学療法の患者が内科の処置室・中待合・診察室に入れるようにした",
     "n": null,
-    "updated": "2026-11-10",
+    "updated": "2026-11-12",
     "range": [
      0.7,
      1.3
@@ -993,16 +1056,29 @@
    "er_walkin": {
     "value": {
      "per_hour": 2,
-     "stay_min": [
+     "wait_min": [
+      10,
+      60
+     ],
+     "treat_min": [
       60,
-      180
-     ]
+      120
+     ],
+     "xray": {
+      "p": 0.3,
+      "stay_min": [
+       10,
+       20
+      ],
+      "what": "処置の途中で X線室へ行って戻る"
+     },
+     "companion_ratio": 0.5
     },
     "what": "救急室に歩いて来る人（日中）",
     "basis": "仮置き",
-    "source": "根拠なし",
+    "source": "根拠なし。2026-11-12 エイイチ了承（P5）：待合と処置を同じ長さにしていたのを分けた。3割が X線室へ、5割に付き添い（どれも仮置き）。救急車で来る人は今回は入れない（フロアの形に救急の入口が無いため。P6 見送り）",
     "n": null,
-    "updated": "2026-11-10"
+    "updated": "2026-11-12"
    },
    "staff": {
     "value": {
@@ -1293,7 +1369,15 @@
       ]
      },
      "見舞い・面会の人（玄関⇔エレベーター。13:00〜16:30 だけ）": {
-      "per_hour": 30
+      "per_hour": 30,
+      "reception": {
+       "where": "総合受付",
+       "stay_min": [
+        0.5,
+        1.5
+       ],
+       "what": "玄関から来た人は、総合受付に寄って面会の手続きをしてからエレベーターへ行く。帰りは寄らない"
+      }
      },
      "ほかの階の職員（エレベーター⇔職員の持ち場。大廊下を通る）": {
       "per_hour": 20,
@@ -1315,7 +1399,7 @@
     },
     "what": "エレベーターからこの階を通る人（1時間あたり。日中）",
     "basis": "仮置き",
-    "source": "根拠なし。ほかの階との行き来がなく、大廊下を通る人がいなかったため足した。面会の時間帯は多くの病院の『13時から』に合わせた。2026-11-12：ほかの階の職員を3つに分けた（割合 3：5：2 は根拠なしの仮置き。エイイチ了承）。依頼155 までは全員が持ち場に2〜3分立って戻るだけだった",
+    "source": "根拠なし。ほかの階との行き来がなく、大廊下を通る人がいなかったため足した。面会の時間帯は多くの病院の『13時から』に合わせた。2026-11-12：ほかの階の職員を3つに分けた（割合 3：5：2 は根拠なしの仮置き。エイイチ了承）。依頼155 までは全員が持ち場に2〜3分立って戻るだけだった。見舞いの人が総合受付に寄る動きを足した（P9。根拠なし）",
     "n": null,
     "updated": "2026-11-12",
     "range": [
```

#### diff_23f2f65.txt（commit 23f2f65 の差分。正面玄関を職員も通れるように・台の前の決まり・立っている人がよける決まり）

```diff
commit 23f2f65 病院：正面玄関を職員も通れるようにした・台の前の決まり（届け先で受け取りを待つ）と積む受け取るの秒を条件に入れた・立っている人がよける決まりを足した（依頼158 の前）

diff --git a/tools/hospital_layouts/hospital_h1.json b/tools/hospital_layouts/hospital_h1.json
index ff6df11..105146e 100644
--- a/tools/hospital_layouts/hospital_h1.json
+++ b/tools/hospital_layouts/hospital_h1.json
@@ -5098,9 +5098,13 @@
      "外来の患者": "入る",
      "化学療法の患者": "入る",
      "救急の患者": "入る",
+     "看護師": "入る",
+     "医師": "入る",
+     "薬剤師": "入る",
+     "検査技師": "入る",
      "事務": "入る"
     },
-    "note": ""
+    "note": "職員も通る（2026-11-12 依頼157 の1：ほかの階の職員の通り抜ける人が、事務のほかは玄関へ歩いて行けなかった）"
    },
    {
     "name": "医事・事務",
diff --git a/tools/hospital_layouts/make_hospital_h1.py b/tools/hospital_layouts/make_hospital_h1.py
index 3dbba7b..0702999 100644
--- a/tools/hospital_layouts/make_hospital_h1.py
+++ b/tools/hospital_layouts/make_hospital_h1.py
@@ -371,7 +371,8 @@ ACCESS = [  # 名前, 部屋, [rect...], {役割: 座る|入る}, 補足
     ("総合受付・会計の待合", "総合受付・会計・待合", [(31, 17.4, 44, 27), (52, 17.4, 70, 27)],
      {"外来の患者": S_, "化学療法の患者": S_}, ""),
     ("倉庫", "倉庫", [(25.1, 0, 44, 13)], {"看護師": E_, "事務": E_}, ""),
-    ("正面玄関", "正面玄関", [(44, 0, 52, 13)], {"外来の患者": E_, "化学療法の患者": E_, "救急の患者": E_, "事務": E_}, ""),
+    ("正面玄関", "正面玄関", [(44, 0, 52, 13)], {r: E_ for r in ROLES if r != "ロボット"},
+     "職員も通る（2026-11-12 依頼157 の1：ほかの階の職員の通り抜ける人が、事務のほかは玄関へ歩いて行けなかった）"),
     ("医事・事務", "医事・事務", [(52, 0, 70, 13)], {"事務": S_}, ""),
     ("中央検査室", "中央検査室", [(70, 0, 98, 13)], {"検査技師": S_, "ロボット": E_}, "ロボットは検体受付の台の前まで"),
     ("生理検査の待合", "生理検査", [(70, 21.9, 98, 27)], {"外来の患者": S_, "看護師": E_, "医師": E_, "検査技師": E_},
diff --git a/tools/hospital_sim/assumptions.json b/tools/hospital_sim/assumptions.json
index 0300ce7..961a914 100644
--- a/tools/hospital_sim/assumptions.json
+++ b/tools/hospital_sim/assumptions.json
@@ -1459,6 +1459,30 @@
    "source": "2026-11-12 エイイチ：依頼155 の動画を見て、ロボットがどこから呼ばれて動いているのか・人から荷物を受け取ったり渡したりしているのかが分からないと指摘。この3つで進めると決定",
    "n": null,
    "updated": "2026-11-12"
+  },
+  "handoff_rule": {
+   "value": {
+    "積む所": "ロボットは台の前で待つ。積む人が台に来て load_s のあいだ横に立ち、積み終わってからロボットが出る（出発の時刻は時刻表のまま。積む人はそれに間に合うように台へ来る）",
+    "届け先": "ロボットは着いたら台の前で待つ。便ごとの pickup_wait_s（trips_all）が過ぎたころに受け取る人が台に着き、unload_s のあいだ横に立って降ろす。降ろし終わるまでロボットは動かない。そのあと戻る・次の積む所へ移る",
+    "pickup_wait_s の数え方": "ロボットが着いてから、受け取る人が台に着くまで（受け取る人は、それに間に合うように歩き始める）"
+   },
+   "what": "台の前で、ロボットと人が積む・受け取るときの決まり",
+   "basis": "決まり",
+   "source": "試算の決まり（hospital_sim.py：着いてから受け取る人を待ち、降ろしてから次へ）。2026-11-12 依頼157 の報告の3：Unity のロボットは届け先で待たずに戻り、受け取る職員が台に着く時にはもういなかった。エイイチの指摘（人から荷物を受け取ったり渡したりしていないように見える）の原因",
+   "n": null,
+   "updated": "2026-11-12"
+  },
+  "standing_yield": {
+   "value": {
+    "立って待つ点": "持ち場に立つ職員（正面玄関の案内・救急室の看護師など）と、受付の前・中待合で立って待つ人の点は、人の通り道（扉の前・通路の真ん中・台の前のロボットの帯）から外す",
+    "よける": "車いす・杖の人・ストレッチャーが 2 m 以内に来て通れないとき、立っている人（職員・患者・付き添い）は半歩（0.5 m）よけて道を空け、通り過ぎたら戻る。座っている人は動かない",
+    "ロボットが台の前で待つ時": "人はロボットの横を通れる幅が無ければ、別の側を回る。回れなければ、立っている職員が半歩よける"
+   },
+   "what": "立っている人のそばで、歩いている人が動けなくなるのを防ぐ決まり",
+   "basis": "仮置き",
+   "source": "2026-11-12 エイイチ了承。依頼157 の記録：歩いている途中で 60 秒以上動けなかった人が 6 件（総合受付の前・中待合の人の混みで杖の人・車いすが 75〜121 秒、正面玄関の案内のそばの車いす 117 秒、救急室の台の前で待つロボットと看護師の間の医師 112 秒）",
+   "n": null,
+   "updated": "2026-11-12"
   }
  }
 }
\ No newline at end of file
diff --git a/tools/hospital_sim/export_unity_params.py b/tools/hospital_sim/export_unity_params.py
index 94f1716..388a333 100644
--- a/tools/hospital_sim/export_unity_params.py
+++ b/tools/hospital_sim/export_unity_params.py
@@ -103,6 +103,10 @@ def main():
         "switch_move": U["switch_move"]["value"],
         "seeds": U["seeds"]["value"],
         "request_view": U["request_view"]["value"],
+        "handoff": {"load_s": c["load_s"], "pickup_wait_s": c["pickup_wait_s"], "unload_s": c["unload_s"],
+                    "staff_handoff_s": c["staff_handoff_s"], "rule": U["handoff_rule"]["value"],
+                    "what": "積む・受け取る・人が渡す時間（秒。試算の common と同じ値）と、台の前の決まり"},
+        "standing_yield": U["standing_yield"]["value"],
         "people_flow": {k: (v if k == "about" else {kk: v[kk] for kk in ("value", "what", "basis", "source") if kk in v})
                         for k, v in U["people_flow"].items()},
         "basis": {k: U[k]["basis"] for k in ("speeds", "crowd_people", "people_mix", "stretcher_per_h")},
```

### 依頼158 は、患者の動き・呼ぶ場面・台の前の決まりを1つにまとめて回している

依頼158 は2026年11月12日の18:43 に始まり、この記事を書いている時点ではまだ動いています。上限は10時間です。サイト用の素材として、依頼が出てから受け取るまでを1本で追う、1便の通しの短い動画を2本（青の便と赤の便）撮るように書きました。結果は次の記録に書きます。サイトの搬送のタブに動画を載せるのは、その結果で大廊下の人数と動けなくなる人を確かめてからです。

#### request158.md（依頼158 の依頼文の全文）

```markdown
---
作業フォルダ: /Users/shimazueiichi/Robotics_UX/ServiceSim
上限時間: 600
---
# 依頼158：病院の患者の動きを直し、呼ぶ場面と積む・受け取るを見せて、1日を撮り直す

依頼157 の報告（claude_code_reports/20261112_hospital_157.txt）の「決めてほしいこと」1〜6 に、エイイチと決めた答え（2026-11-12）：
1 通り抜ける人 64 人が出ない：**正面玄関を職員も通れるようにした**（フロアの形の access。看護師・医師・薬剤師・検査技師「入る」）。90 人とも出す
2 大廊下の人数が減った：**人を増やすための動きは足さない**。下の患者の動き（採血・外の待合）と 1 で増える分を見る
3 ロボットが届け先で待たずに戻る：**試算の決まりどおりに直す**。ロボットは届け先で、受け取る人が来て降ろし終わるまで動かない（params の handoff.rule）
4 load_s・pickup_wait_s・unload_s・staff_handoff_s：**params に入れた**（handoff）。便ごとの受け取りを待つ秒は day_schedule.trips_all の pickup_wait_s を使う
5 60 秒以上動けなかった人：**立って待つ点を通り道から外し、車いす・杖の人が来たら立っている人が半歩よける**（params の standing_yield）
6 Unity で決めた値（unity_only157）：**このままでよい**。ただし受け取る用事の歩き始めは 3・4 に合わせて直す（ロボットが着いてから pickup_wait_s が過ぎたころに台に着く）

エイイチが依頼155 の動画を見て言ったこと：**ロボットがどこから呼ばれて動いているのか分からない。人から荷物を受け取ったり、渡したりしていないように見える。** 今回はこれを画面で分かるようにする。
あわせて、患者・付き添い・見舞いの人の動きを、エイイチと決めた表（iCloud の hospital/patient_classification.md）のとおりに直す。

**数える問題・ロボットの止まり方・人がロボットをよける決まり（standing_yield で足す分のほか）は変えない。ロボットの速さは 0.6m/秒のまま。**
**速さ・人数・混み具合などの値は Unity の中で決め打ちにしない**（params を読む。将来、値を替えて回せるようにするため）。
**配膳の場面・配膳の実行ファイル・配膳の台帳、配膳と共通の部品には触らない。** 変えるのは Assets/ServiceSim/Hospital/ の中だけ。見た目は依頼153 の色・決めたカメラのまま。
**瞬間移動はさせない**（エレベーターの中で現れ・消えるのはよい）。
**エイイチは見ていない。人に聞かないと進めない所に当たったら、その項目は止めて報告に書き、ほかは続ける。**

## 正（読むもの）
- p2m-site main（23f2f65）
  - フロアの形：`tools/hospital_layouts/hospital_h1.json`（md5 b64abb22f2cbb110f03c93ae7aa0f9fc）。依頼157 の形（76084c21）との違いは access だけのはず：
    内科の処置室・内科の中待合・内科の診察室に 化学療法の患者「座る」／正面玄関に 看護師・医師・薬剤師・検査技師「入る」（note も）
  - 条件：`tools/hospital_sim/hospital-unity-params.json`（md5 26892ecd9074e1be22acc32886ae0397）。依頼157 の写し（77e8385a）との違いは次だけのはず：
    layout・layout_back_door の md5／request_view・handoff・standing_yield（新しい）／
    day_schedule.requests_all・requests_all_what（新しい）、day_schedule.trips_all の各便に items・pickup_wait_s（足しただけ。route・depart・from は同じ）／
    people_flow の outpatient_steps・chemo・er_walkin・elevator_traffic（見舞いの人の reception と source）

## 始める前に確かめること（違えば回さずに報告して終わる）
作業場所の保留 0（cs:126 のあと）・Unity と回し係が動いていない・KIOXIA がマウント済み・上の md5 と違いの中身

## 1. 作る（中身は params を読む。ここは要点だけ）
### 1-1 台の前（handoff）
- 積む所：積む人が台に来て load_s のあいだ横に立ち、積み終わってからロボットが出る（出発の時刻は時刻表のまま）
- 届け先：ロボットは着いたら台の前で待つ。便ごとの pickup_wait_s が過ぎたころに受け取る人が台に着き、unload_s のあいだ横に立って降ろす。**降ろし終わるまでロボットは動かない**
- 待っている間に次の便の出発の時刻が来たら、降ろし終わってから向かい、遅れを記録する

### 1-2 呼ぶ場面と荷物の見せ方（request_view。見た目とパネルだけで、動きは変えない）
- 依頼が出た時（day_schedule.requests_all の t）：頼んだ持ち場（積む所）に印。至急は色を変える。パネルに、道ごとの待っている荷物の数と、いちばん古い依頼が待っている時間
- 積む時・渡す時：人がロボットの横に立っている間、パネルに「積んでいる」「受け取っている」。運んでいる荷物の数（trips_all の items）
- 受け取りを待つ時：届け先でロボットが待っている秒を、パネルと場面で分かるように
- 人が運ぶ時（staff_walks_all の回）：運んでいる人に印、パネルに「人が運んでいる」
- 印の色・形は、今の色（依頼153）とパネルの作りに合わせて決め、報告に静止画を付ける

### 1-3 患者・付き添い・見舞いの人（people_flow）
- 外来の患者（outpatient_steps）：採血は全部の科で5割・15〜45分／番が近づくまで外の待合（総合受付・会計の待合）、呼ばれたら中待合 10〜15分／生理検査と処置・検査の前に 5〜20分待つ（wait_min）
- 化学療法の患者（chemo.steps）：採血 → 内科の中待合 → 内科の診察室 → 化学療法の受付・待合 45〜75分 → 点滴。付き添い3割、点滴中のトイレ 1〜2回
- 救急の患者（er_walkin）：待合 10〜60分・処置 60〜120分。3割が処置の途中で X線室へ行って戻る。5割に付き添い
- 見舞いの人（elevator_traffic の reception）：玄関から来た人は総合受付に寄ってからエレベーターへ
- 病棟の患者・付き添いの看護師・職員（依頼157 の型と用事）・清掃と警備の人はそのまま

### 1-4 立っている人（standing_yield）と通り抜ける人
- 立って待つ点を、扉の前・通路の真ん中・台の前のロボットの帯から外す
- 車いす・杖の人・ストレッチャーが通れないとき、立っている人が半歩よけて戻る
- ほかの階の職員の通り抜ける人を、職種によらず 90 人とも出す

- 記録は依頼157 のもの（errands157・partners157・stall157 など）を続ける。足すもの：便ごとの、積む人が横に立っていた秒・届け先でロボットが待った秒・受け取る人が横に立っていた秒・出発の遅れ
- サイトに書いていなくて Unity で決めた値は summary の unity_only158 に書き、報告の「決めてほしいこと」に並べる
- check-in（保留0）して、Builds/hospital158/ を作る。前の実行ファイルは残す

## 2. 確かめ（違えば 3 は撮らずに止める）
- 依頼157 と同じ確かめ（廊下だけ×2 で1バイト一致、瞬間移動0、便16/16、立ち往生、入れない所0秒（役割ごと）、時間で切替×1、飛ばした行き先・出さなかった人、型1 が持ち場の外 0 秒、用事の回数、種8 の回）
- (a) 台の前：16 便とも、積む人がロボットの横に load_s 立ってから出ていること・届け先でロボットが待ち、受け取る人が横に unload_s 立ってから動いていること。届け先で待った秒を便ごとに params の pickup_wait_s と並べる。出発の遅れの数と秒
- (b) 依頼の数・至急の数・便ごとの荷物の数が params の表と合うこと。見た目あり・なしで動きの記録が同じこと（印とパネルは見た目だけ）
- (c) 患者：採血に行った人数と科ごとの内訳、採血の所（内科の処置室）にいた人の数の山と、座れずに立った人の数。外の待合と中待合にいた時間。化学療法の患者 20 人の行き先の順と時間。救急の患者の X線室の行き来。見舞いの人が受付に寄った数
- (d) 時刻ごと（30分ごと）の所ごとの人の数（依頼157 の表と同じ形）。外来の大廊下 x0〜70・x70〜120・職員の廊下を、依頼155・157 と flow_estimate（山場 2〜8・午後 1〜3）と並べる
- (e) 歩いている途中で 60 秒以上動けなかった人の一覧（依頼157 の 6 件がどうなったか）。立っている人がよけた回数
- (f) 問題の数を依頼143〜157 と並べる（区間ごと・台の前で待っている間も・相手の番号ごと）。採血の人が増えた内科の処置室（青の道の積む所）の中と前がどう変わったか

## 3. 撮る
- 静止画：依頼157 と同じ18枚に、寄りを足す：積む所で人がロボットに積んでいる時（青の便1つ）・届け先で人が受け取っている時（赤の便1つ）・依頼の印が出ている時・採血の所がいちばん混んでいる時
- 動画 1：廊下だけ・0.6m/秒・種0 の1日の早回し（依頼157 と同じ作り）
- 動画 2（新しい。サイトに載せる短い動画の素材）：1便の通し。依頼が出る → 待つ → 積む → 走る → 届け先で待つ → 受け取る、が1本で分かるもの。店の時刻の5倍・パネル付き。青の便1つと赤の便1つ（山場の時間帯から）
- 並べた図
- 出力：/Volumes/KIOXIA/r2r2r-data/service_sim/unity/hospital/20261112_flow158/。並べた図・静止画・動画は iCloud の …/サービスロボット導入シミュレーション/hospital/flow158/ にも写し、md5 を確かめる

## 報告
claude_code_reports/20261112_hospital_158.txt に：始める前の確かめ、1 で作ったもの、2 の確かめ（表）、3 のカメラの値と動画の長さ、出力の場所、check-in の番号、決めてほしいこと（直し方の候補は作らない）。
**報告の最後の1行は必ず次のどれか**：「判定：合格」／「判定：止めた（決めてほしいことあり）」／「判定：失敗」
```
