对于医院积累的大量临床信息,我们通常只是检索某位特定病人相关的信息,或者一些简单的数量统计,而蕴藏在这些大量信息当中人们事先不知道、但是又潜在有用的知识往往被忽略。究其原因,其一,面对这些海量信息,普通的检索方式效率低下,甚至经常出现检索超时出错等;其二,常规的统计查询往往得到的是一些简单的类似于数量总和的统计结果,不能很好地反映数据分布等特点,因此对于科研统计意义不大。本文将提出一种基于联机分析处理(OLAP)技术的海量病人数据挖掘方法,使用这种方法可以快速高效地获取检索的结果,并且以一种新的多维度、可变换的方式来分析我们检索的结果。在介绍海量病人数据挖掘方法之前,我们先举一个简单的例子:假如在我院现有HIS系统的基础上,要得到关于某类疾病发病率的以下统计结果:(1)每年该疾病的发病率;(2)每季度该疾病的发病率;(3)该疾病患者的地域分布;(4)该疾病患者当中,男女比例各占多少;(5)该疾病患者当中,各年龄层当中患病的比例是多少;(6)该疾病患者当中,各年龄层患者的男女比例是多少。设想一下,如果我们使用常规的检索方式去统计这些结果,往往都需要做好几次查询统计,而且目前一般的软件都很难提供这种伸缩性很强的统计查询工具或人机交互界面。即使是专业的数据库管理员(DBA)也需要非常复杂的查询函数才能得到这些统计结果,而且对于海量数据信息时,往往这些查询函数效率极其低下。使用基于联机分析处理(OLAP)技术的海量病人数据挖掘方法,可以很好地满足诸如此类的科研统计需求。联机分析处理(OLAP)能够使分析人员快速获取多维度检索结果,而且对检索结果可以从不同的维度或者不同的维度组合进行观察和分析,从而获得对数据更深入的了解。基于联机分析处理(OLAP)技术的海量病人数据挖掘方法是结合病人数据的特点及常见的科研统计需求,定义科研统计所需要的维度,将海量的病人数据构建为病人数据挖掘仓库,从而实现高效的科研统计分析服务。病人数据挖掘仓库主要包含病人的就诊信息表和多个统计量分布表。病人就诊信息表包含了所有病人的就诊信息,比如病人姓名、性别、年龄、家庭住址、就诊日期、检查科室、诊断结论等等。我们称病人就诊信息表为事实表(FactTableo每一个统计量,比如性别、年龄、就诊日期等,我们称之为维度(Dimension),一个或多个相关联的维度构成一个维度表,维度表中定义了所有可能的维度(或多个维度组合)的值,比如,性别维度表中包含了两个值:男和女。通常,我们需要按照科研统计的需要构建特定的维度。比如,在前面提到的关于某类疾病发病率的以下统计任务中,我们将需要定义以下维度(表1):基于联机分析处理(OLAP)技术的海量病人数据挖掘首先根据事实表和定义的维度表,计算各种维度组合情况下的统计值,我们称为度量表(Measureo这些度量值是通过对事实表中的记录做聚集计算(Aggregation)而得来的,一般都是通过做累计记数(COUNT),当然有时候也会使用求和fSUM),比如关于费用、剂量等信息的相关统计。生成这些度量信息之后,使用联机分析处理(OLAP)定义的多维度分析操作方法钻取(rollup和drilldown),切片(slice)、切块(dice)、旋转(pivot)等,完成对数据的分析、查询和报表。常用的多维度分析方法是钻取(rollup和drilldown),比如我们知道了某个疾病在各个年龄层中的发病率,那么通过drilldown操作添加一个性别维度,即可得到该疾病发在各年龄层中男、女发病率的比例。
海量病人数据挖掘的难度在于维度的定义,维度的定义直接影响度量表计算过程以及我们分析问题的角度。通常需要分析科研统计的需求,定义切合统计需求的维度。目前主流的商业数据库中已经提供了多维度数据挖掘的工具,比如SQLServer2005的AnalysisService,即提供了构建数据仓库和执行多维度数据分析的功能。但是,正如前面所说的我们,需要结合病人信息的特点和科研统计的需求,定义我们需要的维度,从而构建合理的病人数据挖掘仓库。4结束语随着医疗改革的稳步推进和数字化医疗的发展,医院的数据量会不断增加,医院的信息化建设会不断成熟,更多医疗信息将会产生,既有来自医院内部信息,也有更多来自其他医疗机构共享的信息。挖掘这些急剧增长的大量信息,不仅有利于个体病人的临床诊断,也有利于对大局的把握和认知,从而为我们的临床研究、疾病预防和相关决策提供重要的依据。希望我们在建设数字化医院的同时,不仅重视收集存储各类临床信息,也要重视对已有信息的分析和再认识,通过数据挖掘发现其趋势、规律和异常,为医院建设及科研服务。
信息发布:广州名易软件有限公司 http://www.myidp.net