Использование наборов данных СДЗ — преобразования (предварительная версия) в решениях для данных здравоохранения
[Данная статья посвящена предварительному выпуску и может быть изменена.]
В этом разделе приведены рекомендации по приему, преобразованию и объединению наборов данных СДЗ (социальные детерминанты здоровья) с помощью наборов данных СДЗ — преобразования (предварительная версия) в решениях для данных здравоохранения.
После выполнения действий, описанных в разделе Подготовка общедоступных наборов данных в наборах данных СДЗ — преобразования (предварительная версия), наборы данных СДЗ будут готовы к приему. Также примите во внимание следующие требования:
- Убедитесь, что ни один из файлов не открыт локально, чтобы избежать загрузки временных копий файлов.
- Для метки конфиденциальности файлов должно быть установлено значение Общие или Общедоступные.
Чтобы начать процесс приема:
В среде решений для данных здравоохранения откройте конвейер данных healthcare#_msft_СДЗ_ingestion.
Нажмите кнопку Выполнить.
После успешного выполнения наборы данных СДЗ готовы к использованию в рабочих нагрузках аналитики.
Общие сведения о механизме приема
Сквозное выполнение этой возможности включает в себя следующие высокоуровневые последовательные шаги:
- Прием наборов данных СДЗ из OneLake в папку Прием.
- Переместите наборы данных СДЗ из папки Прием в Обработка.
- Преобразуйте наборы данных СДЗ в выделенные разностные таблицы в бронзовом хранилище озера данных.
- Прием и преобразование разностных таблиц бронзового хранилища озера данных в модель данных, вдохновленную моделью отраслевых данных (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
Теперь вы можете проанализировать и визуализировать окончательный набор данных, чтобы определить взаимосвязь между количеством пациентов с диабетом и присутствием ресторанов быстрого питания. Таким образом, серебряный уровень обеспечивает надежную нормализацию данных, позволяя создавать запросы и получать исчерпывающую информацию в различных наборах данных и между ними.