资源描述:
《基于医院分诊系统的排队策略分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于医院分诊系统的排队策略分析摘要:通过对于医院排队策略的模拟,以具体的数据说明策略的优劣。关键字:排队论蒙特卡罗算法随机过程计算机模拟1,问题的提出:近年来,随着医疗事业的发展,医院的规模不断扩人,科室门类划分的也越来越细,随之而來的是病人排队挂号和看病变的繁琐,等待时间变长,为此,需要制定一种良好的排队策略,减少病人的等待时间,提高医院的服务质量。以下,笔者通过计算机模拟,对两种排队策略进行比较分析,为医院排队策略的制定提供意见。2,问题的假设:1,我们假设医院实行八小时工作制,一天工作八小时,即48
2、0分钟。2,医院门诊分为普通号和专家号,普通号一个可是有数为医生,专家号一个可是仅有一个医生,并且将普通好和专家号相互独立,以方便模拟。3,我们将病人分为A类和B类,对于A类病人,我们仅进行一次诊断,即用户挂号后进入队列,在进行一次诊断后即完成诊治。B类病人需要进行两次诊断和一次检查,在完成一次诊断后,医生开出检查意见,病人进行检查,完成后病人需返回科室进行第二次诊断,在第二次完成示即完成诊治。4,虽然实际小在一定时间内病人的产生应该按照泊松分布,由于参数设定的怵I难,我们将病人的产生使用一般的随机数生成
3、,同理,病人的诊治时间也使用确定的时间。5,实际中,每位医生每天接诊的人数是有一定限制的,尤其是专家门诊。但考虑病人來源的数据无论自实际数据库,还是來自根据实际情况的随机模拟数据,各类病人的数量都对应了实际的各科室接诊病人的限制。6,对于由于到达时间过晚,部分病人将无法完成诊断,我们将忽略这部分病人。3,两种策略的制定:一级分诊队列模式:每个诊室队列只对应一个诊区候诊队列,我们将Z记作Q,—般排队规则是:①刚完成挂号的病人,添加在Q的末尾;②按医嘱完成体检的病人,直接插入在Q的首部。这种排队规则广泛应用于
4、小小医院。二级分诊队列模式:每个诊室队列对应一个诊区候诊队列和一个候诊厅候诊队列,我们将前者记作Q1,后者记作Q2。一般情况下,因为诊区空间限制,Q1的人数限制在2、3人左右;而候诊厅空间鮫大,所以对Q2的人数不作限制。一般排队规则是:①刚完成挂号的病人,添加在Q2的末尾;②按医嘱完成体检的病人,肓接插入在Q2的首部;③医师始终对Q1屮的首位病人诊治,每位病人诊治结束时,若Q2不空,则Q2的首位病人脱离Q2,进入Q1的尾部。这种排队规则广泛应用于大中型医院。1,核心模拟算法:本系统主要使用链表来模拟表示医
5、院各个对豫的队列,并通过对队列的操作,对医院分诊系统进行模拟,统计用户等待时间,以此进行比较策略的优劣。本模拟程序屮所包含的对彖:Custom:用户基类,用于存储用户信息由于Custom只是一个存储用户信息的基类,不包含具体用户的检查时间,故不岂接使用,而是使用它的继承类Custom_A:A类用户,进行一次检杳,一次诊断时间Custom_B:B类用户,需要医生进行两次诊断,并进行一次检查,因此需要两个诊断时间和一次检查时间Queue:队列类,用于存储每个医生的信息,以及诊断操作包括方法:Service(C
6、ustomitem):对不同类型的病人进彳亍不同的诊断Manager:悖理员基类,川户定义排队策略的抽象类,由于不同的策略所进行的诊断操作不同,所以在基类中只进行队列和窗口的建立和通用队列的字段公共方法:MakeDoctorList:医牛窗口集合的牛:成MakeWaitList:诊断队列的生成ManagerJ子类:一级诊断队列策略,每个科室只有一个诊断队列,体检完成的用户自接插在队列的第一个公共方法:Sei-vice():对队列进行分配医生,管理队列的服务,管理队列使用一级诊断队列策略Manager_II
7、子类:二级诊断队列策略,每个科室由一个诊断队列和一个诊断厅室,诊断厅宗只能容纳2个人,体检完成的用户直接插在诊断厅室的第一个公共方法:ServiceO:对队列进行分配医生,管理队列的服务,管理队列使用二级诊断队列策略核心算法步骤:1,建立用户队列,使用Manager.MakeWaitListO随机工成A,B两类用户,牛成个数为N。2,根据文件使用Manager.MakeDoctor()建立医生队列。3,当第一次诊断和第二次诊断队列都不为空时,在两个队列中杳找最早到达的用户item,为item查找空闲得医生
8、doctor,若item为A类用户,则转至4,若为B类用户,转至5。4,doctor对item进行检查,调整doctor的FreeTime,ii_l录item的WaifTime,转至6。5,doctor对item进行检查,调整doctor的FreeTime,若是第二次检查,则转至6,否则,对item进彳亍体检,调整ArriveTime,将item进入ChangeListo将item进入FinishList,item完成检查,转