医疗行业应用程序的自适应用户界面

自适应用户界面可以协助用户完成应用程序中的各种任务,还可以构建用户偏好的模型以便将来能更好地服务他们。这样的例子很多,比如过滤新闻报道的系统和推荐产品的系统等。这种个性化服务的方式相对较新,并具有提高人机界面有效性的极大潜力。自适应用户界面在健康医疗领域中的应用很广泛。在健康医疗系统的用户当中,有的用户具有很少的计算机知识(比如护士或医生),有的具有专业的计算机知识(比如系统管理员)。对于患者来说,差异因素就更多了。因此,根据不同类型的用户而相应调整计算机应用程序的界面对于提高这类应用程序的可用性十分重要。用来进行自适应调整的两个主要技术是自适应表示自适应导航。自适应表示涉及到的是对展示给用户的内容进行个性化。自适应导航所涉及的是对用户用来完成应用程序内任务的方式进行定制。这些技巧可用来增强健康医疗应用程序的可用性,进而促进它的成功。

Krish Ramachandran, IT 专家, IBM

Krish Ramachandran 是位于加拿大 BC 省 Burnaby 的 IBM Pacific Development Center (PDC) 的一名 IT 专家。他的硕士研究方向是为健康医疗领域(用于教育患者)设计自适应用户界面。他曾在一个非常有名的国际会议上发表过有关开发患者教育自适应系统方面的工作成果。他过去曾经从事过几个健康医疗项目,比如 PDC 中心的 Panorama 健康医疗项目。



2009 年 4 月 02 日

简介

Web 应用程序正在成为提供和管理不同领域内的服务的一种标准方式。用计算机应用程序替换复杂的手动任务会增加这类应用程序用户界面的复杂性。一个好的用户界面应该能够有助于用户和软件之间的有效通信。而这类用户界面的设计是计算机应用程序能否成功的关键。由于复杂性的增加,Web 应用程序的创建者就要面对简化用户界面及帮助用户轻松完成任务的巨大挑战和困难。考虑到用户在年龄、所在地以及知识层次等方面的多样化,这类简化十分具有挑战性。一个界面可能对于某个用户而言很简单,但对于另一个用户而言可能并不尽然。因此,就需要基于用户概要文件根据用户的不同类型来相应调整用户界面。

自适应用户界面还能使遵循与信息访问控制相关的不断变化的规则和规定变得更为简单。这些界面为管理员提供了处理这类变化的更多灵活性。这类自适应界面可用在诸多领域的大量应用程序中。本文探究了用来创建自适应界面的两个主要技术并提供了每个技术的相关示例。


创建自适应界面所需技术

用来创建自适应界面的两个主要技术是:

  1. 自适应表示(Adaptive presentation)
  2. 自适应导航(Adaptive navigation)

下面的章节会对这两个技术逐一做详细解释。

自适应表示

自适应表示的目标是使页面的内容能够适应某用户当前的知识、目标以及其他显著特点。比如,一个较专业的用户能够理解更为详细的信息,而一个初级用户则需要很多额外的解释。在大多数 Web 应用程序中,某页面的内容可能并不只是文本,可能还包含多媒体项。因此,除了文本之外,自适应表示技术还必须集中处理这类多媒体项,比如图像、视频和音频。

自适应表示可以以多种方式实现。一种方式是隐藏页面内与用户知识水平不相关的那些内容。比如,页面上更底层的细节就可以对那些对此概念知之甚少或只具有基本知识的用户隐藏,因为这些用户往往不会关心如此详细的信息。而另一方面,初级用户常常需要的额外解释则可以对专业用户隐藏,因为专业用户并不需要这类解释。另一种方法是基于用户对相关概念的了解程度在某个页面提供不同的信息和链接。

自适应表示的例子

考虑为某次治疗而创建患者概要文件的例子。如果用户是个医生或健康医疗专业人士,那么用户界面就应该可以显示高深的医学细节以便他或她能够从中获得有关该患者的信息。但是,如果用户是个具有较少医学知识的系统管理员,那么这些字段可能就没什么意义,因此可以隐藏。这类隐藏字段可显示给医生或健康医疗专业人士,他们可以完成所需的额外细节。自适应表示的另一个例子是用来解释页面内不同元素的语言。对于医生或健康医疗专业人士而言,语言可以是高深的医学术语以便给出更多信息,而对于具有有限医疗知识的用户,语言应该很简单,只需给出基本信息即可。

清单 1 给出了自适应表示的一个简单的 XML 代码示例。

清单 1 - 自适应表示的 XML 代码
<input name = ‘anesthesia level’>
    <for user = ‘doctor’ visible = ‘true’ />
    <for user = ‘computer administrator’ visible = ‘false’/>
</input>

<label name = ‘anesthesia  description’>
    <for user = ‘doctor’ showAdvancedText = ‘true’ />
    <for user = ‘computer administrator’ showAdvancedText = ‘false’/>	
</label>

在上述示例中,借助布尔标志 visible,‘anesthesia level’ 的输入只显示给医生,而不会显示给管理员。借助标志 showAdvancedText,标签 ‘anesthesia description’ 既可以连同一段专业的描述显示给医生,也可以连同一段基本描述显示给管理员。这些示例展示了使用 XML 实现的用户界面层的自适应表示,这类自适应调整也可以是应用程序逻辑层的一部分。这类实现依赖于应用程序的业务和环境要求。

自适应表示的实现一览

图 1. 简单的自适应表示实现
简单的自适应表示实现

自适应表示可通过一组规则和一个规则解释器实现,规则解释器负责根据用户概要文件确定针对特定内容所应使用的适当规则。每个规则都对应于一个特定的表示策略,而此策略又对应于一个或多个 UI 元素。将这组规则应用到由页面所表示的概念之后,此页面内的内容就可以显示给用户。规则通常作为文件存储或存储于关系型数据库内,规则是可修改的。规则引擎可以在应用程序的处理模块内实现并应该包含基于用户概要文件和页面概念而选择规则的逻辑。表示模块应该基于当前页面触发一个规则或一组规则,并应相应调整这些内容以便遵从与此页面相关的规则。

自适应导航

自适应导航的目标是帮助用户寻找实现应用程序内的某个特定目标的路径。它所涉及的是根据用户当前目标、对任务的认知以及其他相关特点相应调整导航式链接呈现给用户的方式。为了完成任务,目标不同的用户可能会需要不同的导航支持。比如,一个较专业的用户可能不需要什么帮助就可以在页面上找到相关内容,而一个初级用户可能就需要更多的导航协助才能在相同的页面上找到有关信息。

自适应导航的实现方式有很多。它可被用来向用户提供寻找所需信息的指南,也可用来提供确定用户在页面内的位置的方位指导,还可用来帮助管理信息空间上的个性化视图。指南可自适应提供以便协助用户确定完成某个特定任务的最短路径。如果用户的目标已知或部分已知,该信息就可被用来提供个性化指南。通过提出最相关的链接以便从当前位置访问,这类指南还可用来协助用户做出下一步的导航步骤。另外的一个自适应导航实现是协助用户定位可访问信息及其在应用程序中的相关位置。它还可通过隐藏不必要的链接和只显示相关链接实现。

自适应导航的示例

考虑创建患者概要文件的例子。系统管理员可能会想要通过综合单个页面内的两个或三个子任务来完成迅速创建患者概要文件的任务,而具有有限计算机知识的医生或健康医疗专业人士则可能希望逐步完成所有操作,就好像使用向导一样。自适应导航的另一个例子是定制页面上所显示的链接,以便领域专家能够以有别于具有有限领域知识的用户的另外一种顺序访问它们。有些链接可以被隐藏或者可以基于用户类型指向不同的任务。

清单 2. 自适应导航的简单 XML 示例代码
<section name = ‘blood tests section’>
    <for user = ‘doctor’ showAllTests = ‘true’ showTestsInTabs = ‘false’/>
    <for user = ‘administrator’ showAllTests = ‘false’ showTestsInTabs = ‘true’/>
</section>

<link name = ‘blood tests description’>
    <for user = ‘doctor’ visible = ‘false’ />
    <for user = ‘administrator’ visible = ‘true’/>	
</link>

在上述示例中(清单 2),借助布尔标志 showAllTestsshowTestsInTabs,‘blood tests’ 段可作为单个页面显示给管理员,可作为一组选项卡显示给医生。而借助标志 ‘visible’,‘blood tests description’ 链接(描述所输入的血液检查)可显示给管理员而不是医生。这些示例展示了用户界面级别使用 XML 的自适应导航。这类自适应导航也可以是软件应用程序处理模块或中间层的一部分。

自适应导航的实现一览

图 2. 简单的自适应导航实现
简单的自适应导航实现

自适应导航可通过使用一组规则实现,每个规则对应于用户界面内的一个或多个导航元素。规则引擎内的规则所对应的是基于场景和用户概要文件而要在某个链接或一组链接上采取的操作。在根据页面所表示的概念及用户的概要文件处理了某组规则后,就会显示页面上的导航链接。规则通常可存储于文件内或关系数据库内,并可修改。规则引擎将会在应用程序的处理模块内实现并将包含一组规则,这组规则与依照用户的背景、知识程度以及其他与应用程序有关的重要信息而显示特定的一个链接或一组链接相关。表示层模型将会基于应用程序内的当前活动页面触发一个规则或一组规则,并将基于这些规则针对此用户相应调整该页面的导航链接。

解决方案实现

图 3. 简单的自适应系统架构
简单的自适应系统架构

此架构的各个组件的解释如下:

  • 数据库:
    规则数据库存储与自适应表示和自适应导航相关的规则。根据系统的设计,规则可被存储在关系数据库内,也可存储为 XML 文件。在实现这些规则时,必须要考虑到规则在将来进行更新或修改的可能性。
    通常,用户的概要文件会被存储,并且该概要文件可被用来提供自适应性。一个用户概要文件包含有关该用户的个人细节信息、用户对领域概念的知识、用户目标以及应用程序所需的其他信息。就实现而言,此模型将很可能作为一个或多个表存在于数据库内。比如,用户信息将会包含年龄、对健康医疗的专业程度、计算机知识的程度、教育程度等。用户信息可存储在任何一个关系型数据库。
  • 自适应引擎:
    自适应引擎包含一个自适应表示引擎 、一个自适应导航 引擎和一个业务逻辑解释器(确保自适应调整适合应用程序的业务规则)。表示和导航所对应的自适应规则通过一种合适的编程语言或中间层框架在应用程序的处理模块内实现。规则引擎可通过一组规则作为程序本身的一部分实现,也可以作为文件存储到数据库中。规则解释器可被用来解析针对特定场景和用户概要文件的某个规则。
  • 自适应用户界面:
    一个用户界面一般由能根据不同用户做自适应调整的表示和导航元素的不同变换形式组成。用来实现自适应表示和自适应导航的 UI 框架必须足够灵活以便以适合于自适应调整的方式表示该界面的不同元素。

结束语

自适应用户界面是软件应用程序领域中的一个新兴且发展迅速的方面。其主要标志就是可针对某个特定用户个性化界面的自适应技术。自适应表示有助于根据用户个性化内容,而自适应导航则能在用户执行任务时提供全程指导。自适应用户界面将会为健康医疗领域带来巨大的价值,因为健康医疗领域对 IT 知识的认知程度还相对较低。根据目标和业务的上下文环境的不同,这类自适应调整也会有所区别,并会显著提高健康医疗应用程序的可用性。

参考资料

学习

获得产品和技术

  • 下载 IBM 试用软件:用可直接从 developerWorks 下载的 IBM 试用软件构建您的下一个开发项目。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=379788
ArticleTitle=医疗行业应用程序的自适应用户界面
publish-date=04022009