医疗领域的数据仓库设计与管理
1. 日期维度的角色扮演
在医疗数据仓库中,累积快照事实表常常涉及多个日期戳。例如,可能存在八个指向日期维度的外键。对于这些外键,不应将它们连接到日期维度表的单个实例。正确的做法是,在单个底层日期维度表上创建八个视图,然后将事实表分别连接到这八个视图,就好像它们是八个独立的日期维度表一样。为了让商业智能(BI)工具向业务用户展示易于理解的列名,这八个视图的定义应该对列名进行重新标记,使其具有可区分性。
除了日期维度,其他维度也可能存在角色扮演的情况。比如在收费相关的设计中,医生维度可能会根据医生是转诊医生、主治医生,还是以咨询或协助身份工作而扮演不同的角色。
2. 多值诊断的处理
通常情况下,事实表周围的维度在事实事件的上下文中只取单个值。但在医疗事实表中,诊断维度常常是多值的。在进行手术或实验室测试时,患者可能有一个或多个诊断。电子病历应用程序使得医生能够选择多个诊断,这比以往仅为报销提供最少编码的做法更能全面反映患者的病情严重程度。
如果总是最多有三个诊断,可能会想在事实表中创建三个诊断外键及相应的维度,但诊断并不像独立的角色那样表现。而且,实际情况中常常会有超过三个诊断,特别是住院的老年患者可能同时有20个诊断。
为了处理多值诊断的开放性问题,可以采用如下设计:将事实表中的诊断外键替换为诊断组键,该诊断组键通过多对多连接到诊断组桥接表,桥接表为每个特定组中的单个诊断包含一个单独的行。
以下是相关表结构:
| 表名 | 字段 | 说明 |
| ---- | ---- | ---- |
| 诊断维度表 | 诊断键(PK)、诊断代码(NK
超级会员免费看
订阅专栏 解锁全文
474

被折叠的 条评论
为什么被折叠?



