基于呼叫中心的社区卫生信息系统设计与实现
扫描二维码
随时随地手机看文章
摘 要: 呼叫中心技术涉及计算机电话集成、数据库技术和交换技术等多种技术,已成为向客户提供服务的重要方式。研究如何将呼叫中心技术内嵌到社区卫生信息系统中,并给出了一种基于线性加权优先级算法的排队模型。
关键词: 呼叫中心;有限状态机;计算机电话集成;排队模型
呼叫中心(Call Center)也叫客户服务中心,它利用计算机电话集成(CTI)技术,将基于语音的电信网络(PSTN)与基于后台数据库的计算机处理网络有机结合起来,实现客户和系统的沟通互动。社区卫生信息管理系统是卫生管理决策数据的重要来源,社区信息管理人员如何快速准确地为管理决策者提供相关信息资料,是社区信息管理人员的一个重要任务,因此迫切需要适应现代社区信息管理运行模式的社区卫生信息管理系统。本文研究了如何将呼叫中心技术在社区卫生信息管理系统中的应用,分析了基于呼叫中心的社区卫生信息客户服务系统的具体实现方案,并给出了一种基于线性加权优先级算法的排队模型。
1 系统架构分析与建模
呼叫中心有两种典型实现方案,即基于交换机的实现和基于语音板卡的实现[1]。这两种方案适用于不同场合的呼叫中心构建。其中,基于语音板卡的方案其基本思想是在计算机平台上集成各种功能的语音处理卡,完成通信接口、语音处理、传真处理、座席转接等功能,结合外部的计算机网络实现各种应用系统的具体需求;如果呼叫中心规模小于20个座席,则适合采用基于语音板卡的实现方案。而当应用系统规模大于20个座席时,采用基于交换机的方案能够获得更好的经济效益。本文所涉及的卫生信息管理系统对呼叫中心的需求属于较小规模,因此适合采用基于语音板卡的实现方案。
1.1 系统总体架构
分析本系统中呼叫中心子系统的功能,可按主要业务模块划分,如图1所示。
具体实现中,可以预留相关接口,便于系统业务功能模块的扩展和变更。
1.2 系统的分层设计
构建呼叫中心子系统时需要考虑到系统的整体稳定性、引入新业务的灵活性及系统功能的可扩展性。为达到这些需求,本文在实现中采用分层设计的思想,如图2所示。将呼叫中心子系统模型分为业务交换层、业务支撑层和业务实现层。相对于业务层面,呼叫接入处于最低层,业务应用处于最高层。业务交换层完成网络的接入及业务支撑层的业务控制任务;业务支撑层是交换与具体业务之间的支撑系统;业务实现层通过API接口按照话务需求向业务支撑层提出需求,结合计算机网络技术实现具体的应用。
在分层设计思想的基础上,系统实现中的通用程序架构设计可以对呼叫流程控制进行动态配置,进而仅需通过增减或修改业务受理层上的业务模块,以及对系统资源层上的语音文件进行编辑,即可以实现不同社区的呼叫中心或同一社区呼叫中心动态扩展业务。
1.3 系统状态变迁描述
系统中同时存在多个呼叫,每个呼叫从发起到结束的整个过程要经历多个状态的变迁,多个呼叫的处理流程相互交织在一起异步进行。为保证相应控制软件有清晰的控制结构和简捷的程序代码,有必要对系统状态的转换进行形式化描述和建模。
有限状态机FSM(Finite State Machine)是一种常见的基本形式化技术[2]。若把一次呼叫定义为一个进程,呼叫的接入最终应答在接入过程中将经历若干状态的变迁。把进程的整个生命周期划分成若干个不同状态,每个状态都在等待一条或几条指定的事件;事件消息到达后,进程处理这些消息从而进入另一个状态。
状态集合。在事件集合中各事件的驱动下,线路将在各工作状态之间转换,这种变迁关系由映射函数f定义。由于呼叫中心启动后各条线路始终连续运转,没有终止状态,因此有限状态机的终态集为空。系统支持多条外线同时呼叫,各条线路的呼叫处理过程都是异步进行的,因此系统需要维护多个有限状态机,且每个有限状态机对应一条线路。
1.4 系统具体实现
系统由一台服务器和一块8路模拟语音卡构成。语音板卡安装在服务器内扩展槽中,板卡提供8个内/外线话机接口,可对8路语音进行同时处理。在软件的设计过程中,系统采用模块化的设计方法,充分考虑软件与语音卡型号的无关性,以C++ Builder6.0为软件开发工具。根据系统要求多路并行的特点,将系统功能细分为不可分割的原子动作,放入Timer控件的Ontimer事件中;将语音板卡初始化、信号音检测、收码处理、节点处理、挂机处理和语音流程维护等功能封装成独立模块供系统调用,从而提高了系统可靠性。系统数据库选用Microsoft SQL Server 2005,但考虑到应用该系统的各社区原有的数据库系统差异,特提供了一种通用的数据库接口。将接口系统分为相互独立的接口生成子系统和接口运行子系统,通过接口参数描述表将两部分有机联系成为一个整体。注册表是联系接口生成子系统与接口运行子系统的数据基,接口生成子系统向注册表中写入接口描述;接口运行子系统则依据注册表中的接口描述,装配实际的运行接口。图3为系统中呼叫的具体处理流程。
2 呼叫排队的数学模型
呼叫排队系统又称为呼叫随机服务系统,该系统中呼叫到达时间和服务所需时间都是随机的,会出现“排队等待”现象。因此必须首先考虑解决社区用户呼入的排队等待问题。通过建立呼叫中心的排队模型实现对系统性能的分析,并通过预测呼叫的排队等待时间,可以平衡呼入的各队列等待时间,从而提高呼叫中心的实际工作效率。
2.1 通用排队模型
呼叫中心的基本排队模型包括以下参数:连接到呼叫中心的m条通信线路,w(w≤m)个服务台(座席的最大数目),N(N≤w)个可以提供服务的座席[3]。其基本处理流程为:一个呼叫到达后,若所有线路都忙则呼叫被直接丢弃;若忙的座席数小于N则呼叫立即得到服务;若忙的座席数等于N则呼叫进入队列排队,并按先到先服务(FCFS)的算法处理。在呼叫中心的实际应用中,通常有Erlang-C、Erlang-B和Erlang-A三种排队模型。其中,Erlang-B模型主要考虑了呼叫的阻塞问题;而Erlang-A模型不仅考虑了呼叫阻塞,还要考虑呼叫排队过程中用户主动放弃等待的问题;Erlang-C模型在呼叫中心理论分析中应用最为普遍。
2.2 Erlang-C模型应用分析
图4所示为一个单队列多座席的排队系统模型。若座席数N=3,则3个座席向用户提供服务,但是队列只有一列。用户呼叫到达后先判断队列情况,队列为“空”则选择某个座席接受服务;否则排队等待。当某座席完成服务后,如果队列处于“非空”状态,则立即开始新服务;否则进入“空闲”状态。
定义1 在Erlang-C模型中,若呼入次数无限,设λ为单位时间呼叫到达率,μ为呼叫服务率,N为座席数目。假定:(1)时间T内有k个呼叫到达的概率满足固定速率λ的Poisson分布;(2)对呼叫的服从服务率μ的指数分布,则Erlang-C对应的排队模型为M/M/N/∞,且系统的负载为α=λ/μ。
显然,若α≥N,即呼叫超过了可提供服务的座席数目,则系统承受的负载超过了系统的处理能力,此时将会出现无穷排队的情况,用户的呼叫等待时间将趋向于无穷大[4]。因此下面主要分析α<N的情况。
这里假定座席数N=1(这是社区呼叫中心座席数的通常情况),则对应的排队模型为M/M/1,此时考虑系统负载α<1,即在单位时间内到达的呼叫平均数小于被服务完的呼叫平均数时,队长才能避免无限增长而达到平衡。由概率统计可知: