資源描述:
《基于醫(yī)院分診系統(tǒng)的排隊策略分析》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于醫(yī)院分診系統(tǒng)的排隊策略分析摘要:通過對于醫(yī)院排隊策略的模擬,以具體的數(shù)據(jù)說明策略的優(yōu)劣。關(guān)鍵字:排隊論蒙特卡羅算法隨機過程計算機模擬1,問題的提出:近年來,隨著醫(yī)療事業(yè)的發(fā)展,醫(yī)院的規(guī)模不斷擴人,科室門類劃分的也越來越細,隨之而來的是病人排隊掛號和看病變的繁瑣,等待時間變長,為此,需要制定一種良好的排隊策略,減少病人的等待時間,提高醫(yī)院的服務質(zhì)量。以下,筆者通過計算機模擬,對兩種排隊策略進行比較分析,為醫(yī)院排隊策略的制定提供意見。2,問題的假設:1,我們假設醫(yī)院實行八小時工作制,一天工作八小時,即48
2、0分鐘。2,醫(yī)院門診分為普通號和專家號,普通號一個可是有數(shù)為醫(yī)生,專家號一個可是僅有一個醫(yī)生,并且將普通好和專家號相互獨立,以方便模擬。3,我們將病人分為A類和B類,對于A類病人,我們僅進行一次診斷,即用戶掛號后進入隊列,在進行一次診斷后即完成診治。B類病人需要進行兩次診斷和一次檢查,在完成一次診斷后,醫(yī)生開出檢查意見,病人進行檢查,完成后病人需返回科室進行第二次診斷,在第二次完成示即完成診治。4,雖然實際小在一定時間內(nèi)病人的產(chǎn)生應該按照泊松分布,由于參數(shù)設定的怵I難,我們將病人的產(chǎn)生使用一般的隨機數(shù)生成
3、,同理,病人的診治時間也使用確定的時間。5,實際中,每位醫(yī)生每天接診的人數(shù)是有一定限制的,尤其是專家門診。但考慮病人來源的數(shù)據(jù)無論自實際數(shù)據(jù)庫,還是來自根據(jù)實際情況的隨機模擬數(shù)據(jù),各類病人的數(shù)量都對應了實際的各科室接診病人的限制。6,對于由于到達時間過晚,部分病人將無法完成診斷,我們將忽略這部分病人。3,兩種策略的制定:一級分診隊列模式:每個診室隊列只對應一個診區(qū)候診隊列,我們將Z記作Q,—般排隊規(guī)則是:①剛完成掛號的病人,添加在Q的末尾;②按醫(yī)囑完成體檢的病人,直接插入在Q的首部。這種排隊規(guī)則廣泛應用于
4、小小醫(yī)院。二級分診隊列模式:每個診室隊列對應一個診區(qū)候診隊列和一個候診廳候診隊列,我們將前者記作Q1,后者記作Q2。一般情況下,因為診區(qū)空間限制,Q1的人數(shù)限制在2、3人左右;而候診廳空間鮫大,所以對Q2的人數(shù)不作限制。一般排隊規(guī)則是:①剛完成掛號的病人,添加在Q2的末尾;②按醫(yī)囑完成體檢的病人,肓接插入在Q2的首部;③醫(yī)師始終對Q1屮的首位病人診治,每位病人診治結(jié)束時,若Q2不空,則Q2的首位病人脫離Q2,進入Q1的尾部。這種排隊規(guī)則廣泛應用于大中型醫(yī)院。1,核心模擬算法:本系統(tǒng)主要使用鏈表來模擬表示醫(yī)
5、院各個對豫的隊列,并通過對隊列的操作,對醫(yī)院分診系統(tǒng)進行模擬,統(tǒng)計用戶等待時間,以此進行比較策略的優(yōu)劣。本模擬程序屮所包含的對彖:Custom:用戶基類,用于存儲用戶信息由于Custom只是一個存儲用戶信息的基類,不包含具體用戶的檢查時間,故不豈接使用,而是使用它的繼承類Custom_A:A類用戶,進行一次檢杳,一次診斷時間Custom_B:B類用戶,需要醫(yī)生進行兩次診斷,并進行一次檢查,因此需要兩個診斷時間和一次檢查時間Queue:隊列類,用于存儲每個醫(yī)生的信息,以及診斷操作包括方法:Service(C
6、ustomitem):對不同類型的病人進彳亍不同的診斷Manager:悖理員基類,川戶定義排隊策略的抽象類,由于不同的策略所進行的診斷操作不同,所以在基類中只進行隊列和窗口的建立和通用隊列的字段公共方法:MakeDoctorList:醫(yī)牛窗口集合的牛:成MakeWaitList:診斷隊列的生成ManagerJ子類:一級診斷隊列策略,每個科室只有一個診斷隊列,體檢完成的用戶自接插在隊列的第一個公共方法:Sei-vice():對隊列進行分配醫(yī)生,管理隊列的服務,管理隊列使用一級診斷隊列策略Manager_II
7、子類:二級診斷隊列策略,每個科室由一個診斷隊列和一個診斷廳室,診斷廳宗只能容納2個人,體檢完成的用戶直接插在診斷廳室的第一個公共方法:ServiceO:對隊列進行分配醫(yī)生,管理隊列的服務,管理隊列使用二級診斷隊列策略核心算法步驟:1,建立用戶隊列,使用Manager.MakeWaitListO隨機工成A,B兩類用戶,牛成個數(shù)為N。2,根據(jù)文件使用Manager.MakeDoctor()建立醫(yī)生隊列。3,當?shù)谝淮卧\斷和第二次診斷隊列都不為空時,在兩個隊列中杳找最早到達的用戶item,為item查找空閑得醫(yī)生
8、doctor,若item為A類用戶,則轉(zhuǎn)至4,若為B類用戶,轉(zhuǎn)至5。4,doctor對item進行檢查,調(diào)整doctor的FreeTime,ii_l錄item的WaifTime,轉(zhuǎn)至6。5,doctor對item進行檢查,調(diào)整doctor的FreeTime,若是第二次檢查,則轉(zhuǎn)至6,否則,對item進彳亍體檢,調(diào)整ArriveTime,將item進入ChangeListo將item進入FinishList,item完成檢查,轉(zhuǎn)