1 引言
近年来,随着现代科技的飞速发展,以计算机技术为基础,以经济管理为核心的医院信息 系 统(Hospital Information System,HIS)正在逐步取代原有的医院运作模式,在医疗卫生行业得到广泛使用。HIS 的目的就是利用计算机和通讯设备收集、存储、处理、获取和通讯病人医疗和管理信息,高效地利用病人医疗中有限的资源,定性地提高对病人的服务质量。荷兰国立医院于上世纪 80 年代早期就开发了医院信息模型;国内浙江大学的吕旭东、长春工业大学的郑山红等人也对 HIS 的研究做了大量的工作。
HIS 系统结构复杂、开发难度大,运营维护成本居高不下,且对开发人员的技术水平要求较高,现有的软件开发技术已不能满足日益增长的 HIS 系统应用需求,成为阻碍医院信息化建设的瓶颈。因此,探索新的软件开发思路已成为解决这一问题的关键。本文正是在此背景下,利用智能体技术独特的智能化特性,结合医院信息化建设的要求,把医院中不同的职能部门设计成单一智能主体,充分利用智能体间的通信联系,构建基于多智能体的HIS系统。
2 多智能体HIS系统设计
2.1 智能体技术简介
智能体又叫智能主体,是被赋予了智能化特征的人工智能结构,它具有自主完成某种特定功能的特质,是人工智能理念的具体软件体现。多个智能体可以通过特定的语言进行交互,实现信息的互通,并可以特定的协议方式组成统一的整体,即多智能体系统(MAS)。MAS 可以根据系统的任务需求和外围环境的改变进行动态的扩展。
2.2 多智能体HIS系统设计
在充分研究了传统 HIS 运营方式的基础上,本文设计的智能体 HIS 系统结构如图 1 所示。按不同的职能分类,该结构由交互、管理、实施三层组成。其中交互层主要指院长智能体,它负责与下层智能体的交互,并通过高内聚,低耦合地运用各类智能体的特性,为系统提供统一的安全保障、自动的流程管理以及建立唯一的病人 ID 主索引。管理层包括调度、资源分配、监控、重构等智能体构成。而实施层由多个相互独立的智能主体构成,并通过他们之间的信息交互,协作完成医院运营管理中的各个不同职能部门的具体任务。实施层……院长智能体调度智能体监控智能体重构智能体资源分配智能体挂号智能体医生智能体护理智能体普检智能体影象智能体住院智能体预约智能体管理层功能层。
2.3 多智能体HIS中的智能体设计
多智能体 HIS 系统中独立的智能体,因其均被赋予了智能化的结构属性,故可以通用的功能结构来处理。如图 2 所示,智能体为一个独立的封装结构,它由人机交互、管理器、通讯接口等不同的内部模块组成。通过人机交互智能体,再由管理器模块感知外围的情形,以相应的知识库、方法库和数据库对外围数据进行分析处理,然后利用通讯接口与其他智能体交互作用,实现 HIS 系统的运营管理。
3 多智能体HIS系统的开发实现
多智能体 HIS 系统是以面向智能体的软件设计思想实现系统的开发运行,因此,方便快捷地构建智能主体是系统实现的关键。现有的多智能体系统开发工具较多,本文根据 HIS系统的特点,选用 Java 语言为基础的 JADE智能体开发平台。充分利用 JADE 自身的源代码,并根据系统需求封装底层类库,调用图形化界面,实现信息交互,完成HIS系统的开发。
多 智 能 体 HIS 系 统 利 用 JADE 提 供 的节点信息代码,首先定义底层智能体的基类Agent class,并为其设置了 setup 启动方法和takeDown 方法,分别赋予智能体任务的初始化和结束条件。为了实现智能体间的动态重组和交互,系统还分别定义了 Behaviour 类以及 addBehaviour 方法。各种不同的 Behaviour类以 Behaviour Pool 进行储存和管理。当需要 调 用 Behaviour 类 时, 先 开 始 Action 方法,判断函数 Done 的布尔值真假,若为真则将 Behaviour 调出 Behaviour Pool,否则结束 Action。JADE 定义的封装的基类,其它智能体根据要求仅需重载 setup、action、done、takeDown 等方法即可实现系统的职能。
多智能体 HIS 系统中各独立智能体由JADE 提供的基类扩展实现。不同智能体依据自身的职能特性赋予对应的知识系统,智能体具体的知识描述以类语句的形式实现,如:
D F A g e n t D e s c r i p t i o n d f d = n e wDFAgentDescription();
S e r v i c e D e s c r i p t i o n s d = n e wServiceDescription();
sd.setType("Agent-for-HIS");
sd.setName(getName());
sd.setOwnership("AVLAB");
dfd.setName(getAID());
dfd.addServices(sd);
HIS 系统中,智能体间的交互以消息传送的形式进行。系统借助现有 JADE 平台的消息传送机制,创建自身的 ACLMessage 对象,并更改消息对象的属性,赋予系统所需的消息内容。具体的消息格式为:
(REQUEST
:sender(agent-identifier:name HIS@park:1099/JADE)
:receiver(set(agent-identifier:name HIS@park:1099/JADE))
:content((action(agent-identifier:name HIS@park:1099/JADE)
(is-trajectory-right(agent-identifier:nameHIS@park:1099/JADE))))
:language FIPA-SL0
:ontology jade-agent-ontology
:protocol fipa-request)
4 多智能体HIS系统运行分析
若某医院接收到患者的就医请求后,根据人机交互界面由院长智能体启动多智能体 HIS系统,并输入患者所需救治的相应医疗病情参数。管理层中各智能体经相互协作对病情进行诊断,并实施调度给出最佳就医流程,传达给实施层智能体等待执行救治任务。实施层智能体根据上层智能体指令,按照自身的职能对患者实施救治,并根据任务的具体实施适时向上层智能体反馈,院长智能体根据人机交互界面动态掌控医患救治状态。系统的具体实现步骤为:先在官方网站下载并安装 JADE,根据任务描述扩展 JADE 基类,赋予智能体的具体职能,建立多智能体 HIS 系统。完成后,在电脑上启动 HIS 系统,首先载入院长智能体,并通过人机交互的图形界面启动其它智能主体,输入相应的医患信息,即可实现多智能体 HIS 的在线运营。
5 结束语
医院信息化系统建设是医疗卫生行业发展的总趋势,是实现医院现代化管理的总方向,也是解决医疗信息共享、医疗资源复用以及医疗信息深度挖掘的重要途径。本文构建的基于多智能体的医院信息系统框架,把多智能体技术这一人工智能研究的热点引入到医院信息系统中,赋予医院中各功能部门以智能化的特点,解决了医疗信息化系统开发中的编程困难、可重构能力差、技术水平落后的难题,为医疗卫生行业的信息化建设做了有益的尝试和探索,同时也为智能体技术在医院信息化建设中的研究提供一种新的思路。
参考文献
[1] 吕旭东 . 医疗信息系统体系结构研究及开发平台设计 [D]. 浙江大学博士论文 ,2001.
[2] 郑山红 , 杜海波等 . 基于 Agent 技术的医疗信息整合研究 [J]. 东北师范大学学报(自然科学版),2009,6: 58-62.
[3] 郑山红 , 邹宽城等 . 医院信息系统智能应用平台研究 [J]. 哈尔滨商业大学学报(自然科学版),2008,6: 366-369.
[4] 史忠植 . 智能主体及其应用 [M]. 北京 :科学出版社 ,2000.1-62.
[5]Leiter M, Dean T.A frameworkfor the development of multi-agent architectures[J].IEEEExpert.1996,12:47-58.
[6]Lander S E.Issues in multi-agent design system[J].IEEE:Expert intelligent system & theirapplication.1997,12(2):18-26.
[7]Daniel L B.Using JADE with Javaserver pages[EB/OL].http://jade.tilab.com/doc/tutorials/jsp/JADE4JSP.html.
[8] 旭日 . 基于 JADE 平台的网络信息搜索与集成系统 [D]. 天津大学硕士论文 ,2006