使用医疗保健数据解决方案中的 SDOH 数据集 - 转换(预览版)

[本文为预发布文档,可能会发生变化。]

本部分提供有关如何使用医疗保健数据解决方案中的 SDOH 数据集 - 转换(预览版)引入、转换和统一 SDOH(健康的社会决定因素)数据集的指南。

完成准备 SDOH 数据集 - 转换(预览版)中的公共数据集中的步骤后,SDOH 数据集即可引入。 此外,还考虑以下要求:

  1. 确保所有文件均未在本地打开,以避免上传任何临时文件副本。
  2. 文件的敏感度标签必须设置为常规公共

若要开始引入流程,请执行以下操作:

  1. 在您的医疗保健数据解决方案环境中,打开 healthcare#_msft_sdoh_ingestion 数据管道。

  2. 选择运行按钮。

成功执行后,您的 SDOH 数据集即可在分析工作负荷中使用。

了解引入机制

此功能的端到端执行涉及以下高级连续步骤:

  1. 将 SDOH 数据集从 OneLake 引入到 Ingest 文件夹中。
  2. 将 SDOH 数据集从 Ingest 移动到 Process 文件夹。
  3. 将 SDOH 数据集转换到铜牌湖屋的专用增量表中。
  4. 将铜牌增量表引入并转换到银牌湖屋的行业数据模型 (IDM) 已启发数据模型中。

从 OneLake 引入 SDOH 数据集

将 SDOH 数据集上传到 Ingest 文件夹后开始执行。 在下一阶段,执行管道将文件移动到铜牌湖屋中井然有序的 Process 文件夹中。 在发生任何故障时,管道都会将文件移动到 Failed 文件夹。

若要了解有关这些文件夹以及它们之间的文件移动的详细信息,请参阅文件夹说明

移动 SDOH 数据集

raw_process_movement 笔记本将文件移动到铜牌湖屋中井然有序的 Process 文件夹中。 子文件夹结构如下:Files\Process\SDOH\<file format>\<publisher name>\<dataset-specific folders

处理后的文件存储在各自的子文件夹中,并在文件名的开头添加引入时间戳。

将 SDOH 数据集转换为增量表

将文件移动到 Process 文件夹后,healthcare#_msft_bronze_ingestion 笔记本将以增量表格式填充铜牌湖屋中的元数据、布局和数据表。 布局信息填充到 SD_Layout 表中,元数据信息填充到 SD_Metadata 表中,数据填充到在运行时生成的各个数据表中。 数据表使用 SD_ 作为前缀,并且表名称中包含表/文件名。 每个数据集中的所有数据表都保留其表结构。 您可以将原始数据表与其相应的铜牌增量表进行比较以了解变化。

将增量表转换为银牌数据模型

成功引入铜牌后,healthcare#_msft_bronze_silver_ingestion 笔记本有助于在银牌湖屋中定义自定义数据模型。 此笔记本:

  • 对铜牌湖屋中的数据进行规范化,同时保留相应表的上下文,允许您识别或查询源上下文中的数据。
  • 针对每个源上下文,在银牌湖屋中创建专用表。

下面是关键的银牌湖屋表:

  • SocialDeterminant:包含每个社会决定因素的实际数据点,以及在位置配置表中输入的位置详细信息。
  • SocialDeterminantCategory:包含每个社会决定因素的数据点的类别。
  • SocialDeterminantSubCategory:包含每个社会决定因素的数据点的子类别。
  • UnitOfMeasure(IDM 表):包含度量单位详细信息。
  • SocialDeterminantDataSetMetadata:包含有关数据集的信息,例如数据集名称、发布者和发布日期。

您可以将铜牌增量湖表与其对应的银牌湖屋表示形式进行比较,以了解自定义数据模型转换。 与传统的基于 FHIR 的表相比,自定义数据模型表在结构和组织上有所不同。

示例:分析食物环境和社会经济条件对糖尿病的影响

考虑以下应用场景:我们试图了解某个县的食物环境和社会经济条件对该县糖尿病患者数量的影响。

食物环境和平均家庭收入代表最近引入的 SDOH 公共数据集中的 SDOH 信息,特别是 USDA 的食品环境地图集和 AHRQ 的 SDOH 数据。 您可以使用银牌湖屋中 SDOH 数据模型(SocialDeterminant 表)中的字段,例如快餐店数量、杂货店数量和平均家庭收入。

SELECT
  SocialDeterminantName,
  SocialDeterminantValue,
  SocialDeterminantDescription,
  parsedJson.CountyName AS CountyName,
  parsedJson.CountyFIPS AS CountyFIPS,
  parsedJson.StateName AS StateName
FROM
  healthcare1_msft_silver.SocialDeterminant sd
LATERAL VIEW json_tuple(sd.LocationJson, 'STATENAME', 'COUNTYNAME', 'COUNTYFIPS') parsedJson AS StateName, CountyName, CountyFIPS) sd
ON sd.CountyFIPS = fip_zip_mapping.STCOUNTYFP
WHERE
  sd.SocialDeterminantName IN ('GROC16', 'FFR16', 'ACS_MEDIAN_HH_INC')
AND sd.SocialDeterminantValue IS NOT NULL

另一方面,糖尿病患者的数量是指来自医疗保健数据解决方案临床管道的临床信息,该管道也必须部署和安装。 可以将临床数据引入到此管道中,也可以使用提供的临床示例数据。 使用患者地址和患者病症等字段检索所需的度量值。

WITH ExpandedPatients AS (
  SELECT
    p.id_orig,
    address_item.postalCode AS postalCode,
    address_item.state AS state
  FROM
    healthcare1_msft_silver.patient p
    LATERAL VIEW explode(p.address) exploded_address AS address_item
)
SELECT
  fzm.STCOUNTYFP,
  SUM(CASE WHEN c.code.text LIKE '%Asthma%' THEN 1 ELSE 0 END) AS Total_Asthma_Patients,
  SUM(CASE WHEN c.code.text LIKE '%Diabetes%' THEN 1 ELSE 0 END) AS Total_Diabetes_Patients,
  SUM(CASE WHEN c.code.text LIKE '%Hypertension%' THEN 1 ELSE 0 END) AS Total_Hypertension_Patients
FROM
  ExpandedPatients ep
JOIN healthcare1_msft_silver.condition c ON ep.id_orig = c.subject.id_orig
JOIN healthcare1_msft_silver.fips_zip_mapping fzm ON ep.postalCode = fzm.ZIP
GROUP BY
  fzm.STCOUNTYFP

本质上,这两个数据集之间没有直接关系。 链接元素是其位置详细信息:

  • 食物环境数据可在县级别获得,可通过展开 SocialDeterminant 表中的 Locationjson 列并使用 CountyFIPS 字段来访问该级别。
  • 临床数据包含 FHIR 格式的患者地址,您可以从中检索县信息。 如果只有患者的邮政编码可用,您可以检索它并创建邮政编码到 FIPS 代码的映射表,以便与 SDOH 数据集链接。 此映射表在公共数据存储库中随时可用。

准备好位置数据后,您可以链接这两个数据集来生成显示所有必要数据点的金牌湖屋查询。 下面是一个示例 SQL 查询:

FROM
   social_determinants sd
JOIN
   patient_conditions pc
ON
   sd.CountyFIPS = pc.STCOUNTYFP

您现在可以分析和可视化最终数据集,以确定糖尿病患者数量与快餐店存在之间的关系。 因此,银牌层可实现强大的数据规范化,使您能够在不同数据集内和跨不同数据集构建查询并获得全面的见解。