使用醫療保健資料解決方案中的 SDOH 資料集 - 轉換 (預覽版)
[本文章是發行前版本文件,隨時可能變更。]
本節提供有關如何使用醫療資料解決方案中的 SDOH 資料集 - 轉換 (預覽版) 來擷取、轉換和統一 SDOH (社會健康決定因素) 資料集的指南。
完成 SDOH 資料集 - 轉換 (預覽版) 中的準備公共資料集中的步驟後,就可供擷取 SDOH 資料集了。 另請考慮以下要求:
- 確保沒有在本機打開任何檔案,以避免上傳任何臨時檔案副本。
- 檔案的敏感度標籤必須設定為一般或公共。
若要開始擷取程序:
在您的醫療保健資料解決方案環境中,開啟 healthcare#_msft_sdoh_ingestion 資料管線。
選取執行按鈕。
成功執行後,您的 SDOH 資料集即可用於分析工作負載。
了解擷取機制
此功能的端對端執行涉及以下進階連續步驟:
- 將 SDOH 資料集從 OneLake 擷取到 Ingest 資料夾中。
- 將 SDOH 資料集從 Ingest 移至 Process 資料夾。
- 將 SDOH 資料集轉換為 Bronze Lakehouse 中的專用 Delta 表。
- 在 Silver Lakehouse 中擷取 Bronze Delta 表並將其轉換為受行業資料模型 (IDM) 啟發的資料模型。
從 OneLake 擷取 SDOH 資料集
將 SDOH 資料集上傳到 Ingest 資料夾後開始執行。 執行管線在下一階段會將檔案移至 Bronze Lakehouse 中組織好的 Process 資料夾中。 如果發生任何錯誤,管線會將檔案移至 Failed 資料夾。
要了解有關這些資料夾以及它們之間的檔案移動的更多資訊,請參閱資料夾說明。
移動 SDOH 資料集
raw_process_movement 筆記本會將檔案移至 Bronze Lakehouse 中組織好的 Process 資料夾中。 子資料夾結構如下:Files\Process\SDOH\<file format>\<publisher name>\<dataset-specific folders
。
處理後的檔案會儲存在各自的子資料夾中,並在檔案名稱的開頭新增擷取時間戳記。
將 SDOH 資料集轉換為 Delta 表
檔案移到 Process 資料夾後,healthcare#_msft_bronze_ingestion 筆記本會以 Delta 表填寫 Bronze Lakehouse 中的中繼資料、版面配置和資料表。 版面配置資訊會填入 SD_Layout 表,中繼資料資訊會填入 SD_Metadata 表,而資料則會填入在執行時生成的各個資料表中。 資料表以 SD_
為首碼,並在資料表名中包含工作表/檔案名稱。 每個資料集的所有資料表都會保留其表資料表結構。 您可以將原始資料表與其對應的 Bronze Delta 表進行比較,以了解差異。
將 Delta 表轉換為 Silver 資料模型
成功擷取 Bronze 層後,healthcare#_msft_bronze_Silver_ingestion 筆記本有助於在 Silver Lakehouse 中定義自訂資料模型。 此筆記本:
- 對 Bronze Lakehouse 中的資料進行標準化,同時保留相應資料表的上下文,從而允許您識別或查詢來源上下文中的資料。
- 在 Silver Lakehouse 中為每個來源上下文建立專用資料表。
以下是主要的 Silver Lakehouse 資料表:
- SocialDeterminant:包含每個社會健康決定因素的實際資料點,以及在 Location configuration 工作表中輸入的地理位置詳細資訊。
- SocialDeterminantCategory:包含每個社會決定因素的資料點類別。
- SocialDeterminantSubCategory:包含每個社會決定因素的資料點子類別。
- UnitOfMeasure (IDM 表):包含測量單位詳細資訊。
- SocialDeterminantDataSetMetadata:包含有關資料集的資訊,例如資料集名稱、發布者和發布日期。
您可以將 Bronze Delta Lake 表與其對應的 Silver Lakehouse 表示進行比較,以了解自訂資料模型轉換。 與傳統的 FHIR 型資料表相比,自訂資料模型資料表在結構和組織上有所不同。
樣本:分析食品環境和社會經濟條件對糖尿病的影響
在這個情境下,我們試圖了解一個縣的食品環境和社會經濟條件對該縣糖尿病患者數量的影響。
食品環境和家庭收入中位數代表最近所擷取 SDOH 公共資料集的 SDOH 資訊,具體來說是來自 USDA 的食品環境地圖集和 AHRQ 的 SDOH 資料。 您可以使用來自 SDOH 資料模型 (Silver Lakehouse 的 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 格式的病患地址,您可以從中擷取縣級資訊。 如果只有患者的郵政編碼 (ZIP code) 可用,您可以提取這些郵政編碼,並建立一個郵政編碼到 FIPS 代碼的對應表,以便與 SDOH 資料集連結。 此對應表可以在公共資料儲存庫中輕鬆取得。
準備好位置資料後,您可以連結兩個資料集以建立顯示所有必要資料點的 gold Lakehouse 查詢。 下面是一個 SQL 查詢範例:
FROM
social_determinants sd
JOIN
patient_conditions pc
ON
sd.CountyFIPS = pc.STCOUNTYFP
現在,您可以分析和視覺化最終資料集,以確定糖尿病患者數量與快餐店存在之間的關係。 因此,銀層可實現強大的資料標準化,使您能夠建立查詢並在不同資料集內和跨不同資料集獲得全面的見解。