柯林布瑞临床数据中心包括临床数据仓库(Clinical Data Repository, CDR)是一个整合多个来源的临床数据仓库,提供以患者和医护人员为中心的统一视图的数据库。其中CDR通过受控医学词汇表(CMV)保证所有人对临床数据语义理解的一致,以提高 CDR 的数据质量。在CDR中,诊疗数据是围绕患者为中心进行组织的,临床用户可以从多个角度查询、浏览和分析数据,其中的诊疗数据一般包括:
患者基本信息
历次就诊病史
门急诊和住院诊断
处方信息
检验结果
放射/超声/病理/内镜检查报告
医学影像
费用信息等等。
一、数据架构功能单元
1.1 业务数据复制(CDC)
通过如SQL Server的Transactional Replication等技术,将业务数据库实时复制到复制数据库上,并在目标数据库表上启用CDC(Change Data Capture),实现对业务数据变更的捕获,将医院的业务操作型数据进行复制后存储,数据仓库的数据抽取将在此数据基础上进行,这样可以大限度地避免对业务数据的干扰与压力。
1.2 数据仓库(CDW)
数据仓库区是专门针对企业数据整合和数据历史存储需求而组织的集中化、一体化的数据存储区域。数据仓库由覆盖多个主题域的企业信息组成,这些信息主要是低级别、细粒度数据,同时可以根据数据分析需求建立一定粒度的汇总数据。它们按照一定频率定期更新,主要用于为数据集市提供整合后的、高质量的数据。数据仓库一般很少直接面向终用户。数据仓库侧重于数据的存储和整合,通常采用轻量级索引。
数据仓库区内的数据按照主题存放,数据粒度与CDC数据缓冲区一致或粗于缓冲区,这些数据主要是企业级数据与历史信息,数据在线存储的周期一般较长。数据仓库区的数据是由CDC数据缓冲区的数据按照数据仓库模型的要求进行整合后形成的。
● 设计数据仓库模型时,需要考虑以下几点:
● 基于主题域(临床、运营、质控等)
● 侧重于对企业范围内数据进行整合
● 明细数据与聚合数据共享
● 从技术而言是3NF模式
1.3 数据集市
数据集市是一组特定的、针对某个主题域、部门或用户分类的数据集合。这些数据需要针对用户的快速访问和数据输出进行优化,优化的方式可以通过对数据结构进行汇总和索引。通过数据集市可以保障数据仓库的高可用性、可扩展性和高性能。
医院数据仓库将按照分析应用类别建立以下几类数据集市:运营管理、质量监控、临床科研、员工绩效等等。当然,对于那些复杂的业务数据分析应用(计算非常复杂的数据指标或者数据挖掘等)而言,可能需要单建立数据集市以满足用户访问性能要求,也就是说,根据计算量的多少,每类分析应用可能只需建立一个集市甚至和其他分析应用共享同一个数据集市,也可能建立多个数据集市。需要注意的是,数据集市的建立完全由业务需求驱动,因此当业务部门产生新的数据分析需求时,将视具体情况决定是新建数据集市,还是使用已建数据集市。数据集市好采用迭代的方式进行开发,集市中的数据来自数据仓库。
数据集市的数据不应从源数据系统直接抽取。因为,如果数据集市从源数据系统直接向数据集市提供数据则可能导致数据的不一致,也可能导致多个额外进程产生,这些进程在源系统中将占用额外的系统资源,进而造成资源上的浪费。
数据集市可以和数据仓库位于同一个物理服务器上,或者分布在不同的服务器上。建议数据仓库与数据集市采用使用分布式结构来提高整个系统的可用性、可扩展性和高性能。
数据集市的建立可以采用两种形式:逻辑集市(视图方式)和物理集市。其中逻辑集市具有开发周期稍短,易扩展,节省存储空间的优点,其缺点是性能较低,而通过物理集市往往可以获得较高的性能,但其开发设计周期相对较长、扩展性低、对于存储空间要求较高。
数据集市区的数据由数据仓库区的数据经过转换后形成,直接支撑前端的应用需求。
下表详细描述了CDR数据、数据仓库与数据集市三者功能的比较。
CDR数据 | 数据仓库 | 数据集市 | |
业务功能 | 为数据仓库提供数据源,为科研等应用提供数据支持 | 为整个医院与业务部门提供决策支持 | 为部门或特别业务需求提供决策支持 |
数据规模 | GB级 | GB ― TB级 | GB级 |
数据源 | 分散的、来自业务应用与外部数据源的数据 | 分散的、来自业务应用与外部数据源的数据 | 从数据仓库获得的、集成的数据 |
主题范围 | 按数据主题划分 | 按数据主题划分 | 按部门或业务需求划分 |
时效性 | 新数据 | 历史数据 | 历史数据 |
更新频率 | 准实时更新 | 中等更新频率 | 较低更新频率 |
集中度 | 低度集中 | 中度集中 | 高度集中 |
用途 | 操作型,支持读写 | 信息型,只读 | 信息型,只读 |
使用者 | 具体业务人员 | 医院管理人员 | 医院管理人员 |
1)CDR数据仓库架构
下面从ETL功能架构中的抽取、清洗、转换、加载、缓存点等方面对数据ETL功能框架中的关键服务进行阐述。
● 抽取
抽取步骤负责将数据仓库所需的数据从医院各个业务系统复制数据源中提取出来。由于各个数据源内的数据及其质量各不相同,因此针对每个数据源都可能需要建立各自立的抽取流程。抽取流程的目的在于将数据从数据源抽出并通过一组通用接口传送给数据抽取架构中的清洗与转换步骤。
● 清洗
清洗流程负责对数据进行清洗与确认,使之与数据仓库所要求的数据标准与质量相符合。数据清洗流程的设计可以划分为两类:一类是针对特定业务源系统编写的专用清洗程序,而另一类则是适用于各类业务源系统以及数据仓库内清洗需求的通用程序。由于从源系统抽取的数据都存在不同程度的不一致性,因此可以通过使用相关规则来检查和改善数据质量。
此外,由于很多业务源系统的清洗规则和处理流程基本相同,因此应该将关键的清洗功能设计为通用函数(通过变化参数来满足不同业务源系统的清洗需求)以提高其可重用性。
● 转换
转换步骤负责对源系统所抽出数据进行操作或放大。转换流程是数据在进入数据仓库前后一次进行修改的环节。事实表的聚合以及关键绩效指标(KPI)的计算都在这一步完成。
● 加载
作为ETL流程的后一步,加载流程负责将数据加载到终数据结构中,这些结构可能是维度表,也可能是事实表或者事务表等。加载步骤中的关键组件是代理键管道(surrogate key pipeline),代理键管道主要用于将加载完成的数据表内自然键替换成代理键。在代理键管道内,维度表的主键与外键仍然得到保留,但是为了提升系统性能,在完成加载结束以后,一些约束条件将被去除而仅保留自然键进行。
● 缓存点
在ETL抽取过程中,缓存点的功能主要在于设定任务重启点以及分析数据前后沿袭关系。数据缓存既可以使用平面文件实现也可以使用数据表存放,但是通常并不直接镜像目标数据表的数据结构。
● 元数据管理服务
ETL流程的实施关键在于设计合理的元数据使得系统能够清晰地定义ETL涉及的各个环节。数据抽取架构中主要包含技术和业务两类元数据。ETL架构中的源数据管理服务必须与整个数据仓库的元数据管理服务协同一致,实现统一管理。
● 性能与可用性服务
负责监控数据抽取流程的执行统计数据和性能。性能与可用性服务能够帮助数据抽取流程满足服务级别协议的要求并且发现数据仓库与外部系统的依赖关系。
● 批处理服务
批处理服务使得ETL流程能够根据参数设定按批执行。但是由于批处理服务所涉及的各种系统监控机制相对复杂,因此好使用成熟的套装工具构建。
2)CDR数据访问架构
通过MDX语句实现对数据仓库数据的访问,前端的展示考虑到跨平台及用户体验等因素,主要使用HTML5实现。
谢** 138****8610 1分钟前预约
** 147****8097 2分钟前预约
** 153****5268 3分钟前预约
J** 180****2277 4分钟前预约
李** 136****5984 5分钟前预约
** 177****6409 6分钟前预约
黎** 138****3925 7分钟前预约
熊** 155****8206 8分钟前预约
范** 138****7686 9分钟前预约
陶** 131****7550 10分钟前预约
郭** 151****1207 11分钟前预约
小** 137****7575 12分钟前预约
小** 193****7393 13分钟前预约
啊** 198****5250 14分钟前预约
** 187****6351 15分钟前预约
汤** 189****0777 16分钟前预约
齐** 185****4809 17分钟前预约
钟** 136****2278 18分钟前预约
张** 133****7722 19分钟前预约
吴** 136****7249 20分钟前预约