進階模型:醫療業-Emergency Department-Part 2-邏輯流程-檢傷分類
本篇是接續上一篇進階模型:醫療業-Emergency Department-Part 2-邏輯流程-註冊報到。
==========
無特殊性。讓Entity回到等候區。
==========
流程簡述
- 病患已經完成報到註冊程序,且被移往等候室,等待檢傷分類作業。
- 檢傷作業由護士引領病患至檢傷室。
- 確認同時取得護士與檢傷室這兩種資源後,則將病患與護士一同送往檢查室。
- 進行檢傷作業。
- 完成檢傷後,離開檢傷室。
- 仍由護士將病患移往等候室。
現場佈置
- waitingRoom: 完成報到手續者,將被移動到此區域,等待檢傷分類流程。完成檢傷分類的病患也會回到此區域,等待處置作業流程。使用 space markup-Rectangular Node[待補連結]。
- rectangle3、rectangle4: 這兩個space markup-Rectangular Node[待補連結],被用來定義檢查室(triageRoom: ResourcePool[待補連結])的HomeNode。這部份需要專門篇幅兩解講。簡單地說,可以利用節點空間來定義資源的數量。目前檢查室宣告了兩個空間(rectangle3、rectangle4),就是表示檢查室有兩間的意思。
- nurseHomeRoom: 與前項意義同。被用來定義護士的資源數量。只是,這邊不是用空間數量來定義,而是直接使用數字。區域中有箭號的圖示是指Attractor,他可以設定3D圖的前方的方向。當然,也可用Attractor的數量來決定資源的數量。
- waitingRoom: 完成報到手續者,將被移動到此區域,等待檢傷分類流程。完成檢傷分類的病患也會回到此區域,等待處置作業流程。使用 space markup-Rectangular Node[待補連結]。
- rectangle3、rectangle4: 這兩個space markup-Rectangular Node[待補連結],被用來定義檢查室(triageRoom: ResourcePool[待補連結])的HomeNode。這部份需要專門篇幅兩解講。簡單地說,可以利用節點空間來定義資源的數量。目前檢查室宣告了兩個空間(rectangle3、rectangle4),就是表示檢查室有兩間的意思。
- nurseHomeRoom: 與前項意義同。被用來定義護士的資源數量。只是,這邊不是用空間數量來定義,而是直接使用數字。區域中有箭號的圖示是指Attractor,他可以設定3D圖的前方的方向。當然,也可用Attractor的數量來決定資源的數量。
邏輯流程
流程詳述(整合現場佈置與邏輯流程)
- 病患已經完成報到註冊程序,且被移往(gotoWaitingRoom1: MoveTo)等候室(waitingRoom: space markup-Rectangular Node[待補連結])等待檢傷分類作業。
- 檢傷作業需由護士(nurse: ResourcePool[待補連結])引領至檢傷室(triageRoom: ResourcePool[待補連結])。所以,必須先確認這兩項資源是否有空閒。
- 確認同時擁有(seizeTriageRoom: Seize)護士與檢傷室這兩種資源後,則將病患與護士一同送往檢傷室(triageRoom's HomeNode: space markup-Rectangular Node[待補連結])。
- 進行檢傷作業(triage: Delay)。
- 完成檢傷後,離開檢傷室。亦即釋放(releaseTriageRoom: Release)檢傷室這項資源。
- 在將病患移往(gotoWaitingRoom2: MoveTo)等候室(waitingRoom: space markup-Rectangular Node[待補連結])。
- 下一流程:處置作業[待補連結]。
元件屬性
1. seizeTriageRoom:Seize
這個元件是用來幫Entity抓取資源。資源設定需要專篇討論。
- 設定如何抓取資源與數量。若只會抓一種資源,只是數量不同時,就是第二個選項。若要抓不同資源,且個別有不同數量時,則要點選第一個選項。
- 本案例是設定資源集。這塊有點複雜,也只有在前項選擇resource sets時,才會出現。這個是可以設定各種資源配對組合。本案例比較單純,只要有房間有護士各一個就好。如果,原始要求是說兩個護士與一個房間的這種資源組合。但沒有兩個護士時,有一個護理長也可形成一個資源組合。此時,你要決定哪一種組合為優先,List中排在前面者,只要條件符合就執行。
- 抓資源的策略。本案例是房間與護士必須同時抓取,若少其中一個,就不會成立。沒有任何資源會被佔用。但是,選擇第二個選項時,只要某一資源符合條件(有空閒),就會被抓取,這個資源被佔用了。但是整體條件未滿足,Entity並不會不釋放到下一個元件。
- 若注意看Seize的圖示,他也有一個Queue。主要是前項的設定,到底能接受幾個Entity是站著茅坑不拉屎的。
- 被抓到的資源是否要移動之。這要注意,能夠被移動的資源必須是被設定為Moving或P ortable。不可以為Static。像房間就是被設定為Static資源,所以,就算是這邊設定要移動資源,房間還是不會被移動。那Moving與Portable的差異呢?一個是自走(Moving),一個要人牽(Portable)。
- 有前項選擇要移動,這個屬性才會出現。那要把資源移到哪裡去呢?本案例是將資源移到Entity處。此時就看Entity在哪裡。也就是說,護士會去等候室找到那個搶得資源的病患。這邊留下一個伏筆,若抓取政策是有就先抓的話,那病患離開可能就不會是你想像在Queue中的順序。要小心。
- 那被移動的資源,要不要跟Entity綁在一起。護士是自走型,故需要設定綁在一起,那這個護士資源才會與病患Entity走在一起。其實,這邊還有一個問題未解,綁在一起了,那走路是要算誰的速度呢?哈~要搞這個複雜,動用程式是免不了的。
2. gotoTriageRoom: MoveTo
- 無特殊性,跟之前的類似。把Entity移到triageRoom,只不過這邊是指定移動到這個Entity所抓取到的那一間triageRoom。
3. triage: Delay
無特殊性。
4. releaseTriageRoom: Release
這個是幫Entity釋放資源用。釋放資源也不是想像中簡單,能設定的屬性不多,但選項很多,也就是說,得搭配實務情況來選擇。(這已不是技術問題,而是經驗問題)
- 選擇要釋放什麼(哪一個)資源。本案例是說要釋放特定的資源。
- 因為前項是選擇要釋放特定的資源型態,所以這邊可選擇資源。選這個要注意,此時若Entity身上有兩個以上相同此類型資源,那都會被同時釋放。這句話的另一個意思是說,我們可以設定要釋放幾個。若再加上程式的輔助,想想就多有趣。
- 此資源被釋放後,資源要去哪裡。本案例是讓此資源回到他的老巢(Home Node),注意唷,若這個資源是Portal,他是沒有辦法自己回去的,你可能需要呼叫另一個資源來幫這個資源移回去。我被這個搞得很慘。例如棧板是有限資源,用完要歸還原處,但是,他不會自己移動呀,需要呼叫另一個堆高機來使用。問題來了,若用原本思維,在主流程中呼叫推高機,抱歉,那不是棧板呼叫的,而是Entity叫用的,會出錯的。講到這有感覺的人,恭喜了。問題是,推高機不會自己動呀,最後還是需要呼叫堆高機司機來開這台推高機。先不管呼叫的方式,光是釋放就是一門學問。資源不是隨便釋放的,要注意順序性。
- 設定使用這個資源時,是否有暖機時間。原則上是指回到老巢的使用。但是,有些可能需要充電呀,這時候就要給定一個時間函數了。
5. gotoWaitingRoom2: MoveTo
無特殊性。讓Entity回到等候區。
留言
張貼留言