Поделиться через


Использование наборов данных СДЗ — преобразования (предварительная версия) в решениях для данных здравоохранения

[Данная статья посвящена предварительному выпуску и может быть изменена.]

В этом разделе приведены рекомендации по приему, преобразованию и объединению наборов данных СДЗ (социальные детерминанты здоровья) с помощью наборов данных СДЗ — преобразования (предварительная версия) в решениях для данных здравоохранения.

После выполнения действий, описанных в разделе Подготовка общедоступных наборов данных в наборах данных СДЗ — преобразования (предварительная версия), наборы данных СДЗ будут готовы к приему. Также примите во внимание следующие требования:

  1. Убедитесь, что ни один из файлов не открыт локально, чтобы избежать загрузки временных копий файлов.
  2. Для метки конфиденциальности файлов должно быть установлено значение Общие или Общедоступные.

Чтобы начать процесс приема:

  1. В среде решений для данных здравоохранения откройте конвейер данных healthcare#_msft_СДЗ_ingestion.

  2. Нажмите кнопку Выполнить.

После успешного выполнения наборы данных СДЗ готовы к использованию в рабочих нагрузках аналитики.

Общие сведения о механизме приема

Сквозное выполнение этой возможности включает в себя следующие высокоуровневые последовательные шаги:

  1. Прием наборов данных СДЗ из OneLake в папку Прием.
  2. Переместите наборы данных СДЗ из папки Прием в Обработка.
  3. Преобразуйте наборы данных СДЗ в выделенные разностные таблицы в бронзовом хранилище озера данных.
  4. Прием и преобразование разностных таблиц бронзового хранилища озера данных в модель данных, вдохновленную моделью отраслевых данных (IDM) в серебряном хранилище озера данных.

Прием наборов данных СДЗ из OneLake

Выполнение начинается после отправки наборов данных СДЗ в папку "Прием". На следующем этапе конвейер выполнения перемещает файлы в упорядоченную папку Обработка в бронзовом хранилище озера данных. При возникновении сбоев конвейер перемещает файлы в папку Отклонено.

Дополнительные сведения об этих папках и перемещении файлов между ними см. в разделе Описания папок.

Перемещение наборов данных СДЗ

Записная книжка raw_process_movement перемещает файлы в упорядоченную папку Обработка в бронзовом хранилище озера данных. Структура вложенных папок выглядит следующим образом: Files\Process\SDOH\<file format>\<publisher name>\<dataset-specific folders.

Обработанные файлы хранятся в соответствующих вложенных папках с отметкой времени приема, добавленной в начало имени файла.

Преобразование наборов данных СДЗ в разностные таблицы

После того как файлы перемещаются в папку Обработка, записная книжка healthcare#_msft_bronze_ingestion заполняет таблицы метаданных, макета и данных в бронзовом хранилище озера данных в формате разностной таблицы. Сведения о макете заполняются в таблице SD_Layout, сведения о метаданных заполняются в таблице SD_Metadata, а данные заполняются в отдельных таблицах данных, создаваемых во время выполнения. Таблицы данных имеют префикс SD_ и содержат имя листа/файла в имени таблицы. Все таблицы из каждого набора данных сохраняют свою табличную структуру. Вы можете сравнить исходную таблицу с соответствующей бронзовой разностной таблицей, чтобы понять вариации.

Преобразование разностных таблиц в серебряную модель данных

После успешного приема бронзы записная книжка healthcare#_msft_bronze_silver_ingestion помогает определить пользовательскую модель данных в серебряном хранилище озера данных. Эта записная книжка:

  • Нормализует данные в бронзовом хранилище озера данных с сохранением контекста соответствующих таблиц, позволяя идентифицировать или запрашивать данные в исходном контексте.
  • Создает выделенные таблицы в серебряном хранилище озера данных для каждого исходного контекста.

Ниже приведены ключевые таблицы серебряного хранилища озера данных:

  • SocialDeterminant: содержит фактические точки данных для каждого социального детерминанта и сведения о местоположении, введенные на листе Конфигурация расположения.
  • SocialDeterminantCategory: содержит категорию точек данных для каждого социального детерминанта.
  • SocialDeterminantSubCategory: содержит подкатегорию точек данных для каждого социального детерминанта.
  • UnitOfMeasure (таблица IDM): содержит сведения о единице измерения.
  • SocialDeterminantDataSetMetadata: содержит сведения о наборе данных, такие как имя набора данных, издатель и дата публикации.

Вы можете сравнить разностные таблицы бронзового хранилища озера данных с соответствующими им представлениями серебряного хранилища озера данных, чтобы понять преобразование пользовательской модели данных. Таблицы пользовательской модели данных отличаются по структуре и организации по сравнению с обычными таблицами на основе FHIR.

Пример: анализ влияния продовольственной среды и социально-экономических условий на диабет

Рассмотрим сценарий, в котором мы пытаемся понять влияние продовольственной среды и социально-экономических условий района на количество пациентов с диабетом в этом районе.

Продовольственная среда и медианный доход домохозяйства представляют собой сведения СДЗ из недавно принятых общедоступных наборов данных СДЗ, в частности из Атласа продовольственной среды USDA и данные СДЗ от AHRQ. Вы можете использовать такие поля, как количество ресторанов быстрого питания, количество продуктовых магазинов и медианный доход домохозяйства из модели данных СДЗ (таблица "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

По своей сути между этими двумя наборами данных нет прямой связи. Связующим элементом является информация об их расположении:

  • Данные о продовольственной среде доступны на уровне района, их можно получить, развернув столбец Locationjson в таблице SocialDeterminant и используя CountyFIPS поле.
  • Клинические данные содержат адреса пациентов в формате FHIR, из которых можно получить информацию о районе. Если доступен только почтовый индекс пациента, его можно получить и создать таблицу сопоставления почтовых индексов с кодами FIPS для связывания с набором данных СДЗ. Эта таблица сопоставления легко доступна в общедоступных репозиториях данных.

Подготовив данные о расположении, вы можете связать два набора данных для построения запроса к золотому хранилищу озера данных, который отображает все необходимые точки данных. Вот примерная запрос SQL:

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

Теперь вы можете проанализировать и визуализировать окончательный набор данных, чтобы определить взаимосвязь между количеством пациентов с диабетом и присутствием ресторанов быстрого питания. Таким образом, серебряный уровень обеспечивает надежную нормализацию данных, позволяя создавать запросы и получать исчерпывающую информацию в различных наборах данных и между ними.