针对 BigQuery 转换和协调医疗保健数据

本文档向希望在 BigQuery 中创建分析数据湖的研究人员、数据科学家和 IT 团队介绍在 Google Cloud 上协调医疗保健数据所涉及的流程和注意事项。

通过协调数据,您可以将不同文件格式和标准的数据组合到一起,然后将数据转换为统一的标准化数据集以进行深度分析。要协调数据,您需要验证数据源,然后构建一系列流水线,通过结构转换、转化、身份解析和去标识化来修改数据。

验证源数据

原始格式的临床数据可能不准确且不完整,因此您需要在转换数据之前评估传入数据的质量。验证检查包括以下过程:

  • 确保存在必要的数据元素。
  • 确认数据计数,以使源系统和提取数据湖具有相同数量的数据计数。
  • 在投资计算资源之前,确认值范围是合理的。

Google Cloud 提供以下方法来验证源数据:

  • Cloud Data Fusion 会准备数据,以便您可以查看和浏览一小部分数据(1000 行或更少)。
  • 通过 BigQuery,您可以使用 SQL 执行许多验证。如果数据存在差异,您可以创建视图以向经过身份验证的用户授予验证权限或将所选行导出到 Google 表格用于注释和团队协作。
  • 要自动进行数据质量检查,您可以使用 Cloud Data Fusion 创建用户定义的指令 (UDD)。借助 UDD,您可以在 Cloud Data Fusion 中指定自定义处理、数据检查和函数。创建 UDD 还可实现离群值自动举报功能。

转换数据和构建流水线

结构转换是构建数据转换流水线的一个重要步骤,它包括字段映射、解析和格式化数据。

如果您使用 Cloud Healthcare API 作为提取方法,则无需解析数据或将数据编入索引。Cloud Healthcare API 支持灵活的传入数据格式,可接受多行 JSON 格式和以换行符分隔的 JSON 格式的资源和软件包。例如,如果您使用的是快速医疗互操作性资源 (FHIR) 数据类型,则无需开发自定义 JSON 解析器。您可以使用 Cloud Healthcare API 的内置功能来提取数据。

您还可以对转化执行结构转换,例如将 HL7v2 数据类型转换为 FHIR 数据类型,或将 FHIR 数据类型转换为 SQL on FHIR 架构

Cloud Data Fusion 提供了各种预建插件,可用于解析、格式化、压缩和转换数据。Cloud Data Fusion 还包括可视化工具 Wrangler,它可基于数据集的小部分样本(1000 行)以交互方式过滤、清洗、格式化和投影数据。您定义转换后,Wrangler 会自动生成一个 Dataproc 流水线,将更改应用于整个数据集。

对于更高级的转换,您可以使用配置驱动的映射语言来定义、管理和移植结构映射。

解析患者身份

数据转换的一个重要步骤是将记录与其对应的唯一患者标识符 (UPI) 匹配。通过匹配记录,您可以创建纵向记录,以帮助识别不一致和重复的数据,还可以帮助确保各个患者记录的数据转换保持一致。您可以使用自定义流水线或模型调用主患者索引 (MPI) 来匹配患者记录。如果您要通过 FHIR 整合数据,还可以使用患者标识符搜索参数来联接记录。

转换术语

编码系统、监管机构和组织需求导致临床术语环境经常发生变化。当您将历史记录与新创建的资源结合使用时,新旧术语之间可能会出现不一致。转换和协调临床术语有助于确保新旧术语标准之间的一致性和连续性。

转换度量单位

度量单位可因提取来源、进行度量的组织和地理区域而异。例如,在美国,婴儿的体重通常以克为单位衡量,而成人的体重通常以磅为单位衡量。转换和协调度量单位有助于确保分析捕获所有测量单位,并覆盖所有患者群体。

对数据进行去标识化

去标识化是转换过程中的最后一步,因为它可能干扰数据协调,特别是在身份解析和临床实体提取中。例如,如果您在流水线中过早进行去标识化,则可能无法执行数据协调所需的准确身份解析。Google Cloud 提供了许多选项(包括自定义)来帮助您对医疗保健数据进行去标识化和假名化。

对于非结构化文本数据或传统结构化数据(如 CSV),您可以使用敏感数据保护对敏感数据元素进行分类和隐去处理。借助敏感数据保护,您还可以使用替代、安全哈希处理、标记化、分桶以及保留格式加密等方法,根据自己的安全需求和用例自定义去标识化操作。

Cloud Healthcare API 也内置了去标识化功能,可用于医学数字成像和通信 (DICOM) 和 FHIR 数据集。如果您想要保留初始数据模型,则此选项非常有用。

如果您要处理 FHIR 格式的时间序列数据,则可以根据 UPI 保留资源序列。这意味着,在使用日期偏移功能时,您可以确保资源的顺序不变。

使用中间存储

最佳做法是,将每个转换的结果存储在中间存储空间(临时的过渡性存储)中,以便在灾难恢复的情况下进行问题排查或返回数据转换之前的状态。每次运行流水线时,您都可以在 BigQuery 中以原始导出到 Cloud Storage 的形式重写中间存储。

了解流水线架构

下图展示了数据转换和协调的流水线。

数据转换和协调流水线。

上图显示了数据在流水线中移动的完整过程,包括转换和协调所涉及的所有步骤。数据首先提取为原始数据,然后经过结构转换流水线和身份解析流水线。然后,数据会进行其他转换(例如术语转化和去标识化),并通过输出流水线退出,然后存储在 BigQuery 中。此时的数据为协调后的数据,可用于分析。此外,中间存储空间中的元数据在运行时自动写入,并作为来源和沿袭数据存储在 BigQuery 中。

该图还显示了两个中间存储步骤,作为最佳做法,您可以在流水线阶段之间存储每个数据集。

后续步骤