Usar Conjuntos de dados SDOH - Transformações (versão preliminar) em soluções de dados de saúde
[Este artigo faz parte da documentação de pré-lançamento e está sujeito a alterações.]
Esta seção fornece orientações sobre como ingerir, transformar e unificar os conjuntos de dados SDOH (determinantes sociais da saúde) usando Conjuntos de dados SDOH - Transformações (versão preliminar) nas soluções de dados de serviços de saúde.
Depois de concluir as etapas em Preparar os conjuntos de dados públicos em Conjuntos de dados SDOH - Transformações (versão preliminar), os conjuntos de dados SDOH estarão prontos para ingestão. Considere também os seguintes requisitos:
- Certifique-se de que nenhum dos arquivos esteja aberto localmente para evitar que cópias temporárias de arquivos sejam carregadas.
- O rótulo de confidencialidade dos arquivos deve ser definido como Geral ou Público.
Para iniciar o processo de ingestão:
Em seu ambiente de soluções de dados de serviços de saúde, abra o pipeline de dados healthcare#_msft_sdoh_ingestion.
Selecione o botão Executar.
Após a execução com êxito, seus conjuntos de dados SDOH estarão prontos para uso em cargas de trabalho de análise.
Entender o mecanismo de ingestão
A execução completa desse recurso envolve as seguintes etapas consecutivas de alto nível:
- Ingerir conjuntos de dados SDOH do OneLake na pasta Ingerir.
- Mover os conjuntos de dados SDOH da pasta Ingerir para Processar.
- Converter conjuntos de dados SDOH em tabelas delta dedicadas no lakehouse bronze.
- Ingerir e converter tabelas delta bronze em um modelo de dados inspirado no IDM (Modelo de Dados do Setor) no lakehouse prata.
Ingerir conjuntos de dados SDOH a partir do OneLake
A execução começa depois que você carregar os conjuntos de dados SDOH na pasta Ingerir. O pipeline de execução move os arquivos para a pasta Processar organizada no lakehouse bronze no próximo estágio. Caso ocorram falhas, o pipeline moverá os arquivos para a pasta Com Falha.
Para saber mais sobre essas pastas e a movimentação de arquivos entre elas, consulte Descrições das pastas.
Mover conjuntos de dados SDOH
O notebook raw_process_movement move os arquivos para a pasta Processar organizada no lakehouse bronze. A estrutura de subpastas é a seguinte: Files\Process\SDOH\<file format>\<publisher name>\<dataset-specific folders
.
Os arquivos processados são armazenados em suas respectivas subpastas, com o carimbo de data/hora de ingestão adicionado no início do nome do arquivo.
Converter conjuntos de dados SDOH em tabelas delta
Depois que os arquivos forem movidos para a pasta Processar, o notebook healthcare#_msft_bronze_ingestion preencherá os metadados, o layout e as tabelas de dados no lakehouse bronze no formato de tabela delta. As informações de layout são preenchidas na tabela SD_Layout, as informações de metadados são preenchidas na tabela SD_Metadata e os dados são preenchidos nas tabelas de dados individuais geradas em tempo de execução. As tabelas de dados são prefixadas com SD_
e contêm o nome da planilha/arquivo no nome da tabela. Todas as planilhas de dados de cada conjunto de dados mantêm sua estrutura de tabela. Você pode comparar a planilha de dados original com a tabela delta bronze correspondente para entender a variação.
Converter tabelas delta em modelo de dados prata
Após a ingestão bronze com êxito, o notebook healthcare#_msft_bronze_silver_ingestion ajuda a definir um modelo de dados personalizado no lakehouse prata. Esse notebook:
- Normaliza os dados no lakehouse bronze enquanto preserva o contexto das tabelas correspondentes, permitindo que você identifique ou consulte os dados no contexto de origem.
- Cria tabelas dedicadas no lakehouse prata para cada contexto de origem.
Veja a seguir as principais tabelas do lakehouse prata:
- SocialDeterminant: contém os pontos de dados reais para cada determinante social e os detalhes de localização inseridos na planilha Configuração de localização.
- SocialDeterminantCategory: contém a categoria de pontos de dados para cada determinante social.
- SocialDeterminantSubCategory: contém a subcategoria de pontos de dados para cada determinante social.
- UnitOfMeasure (tabela IDM): contém os detalhes da unidade de medição.
- SocialDeterminantDataSetMetadata: contém informações sobre o conjunto de dados, como o nome do conjunto de dados, o editor e a data de publicação.
Você pode comparar as tabelas do delta lake bronze com suas representações correspondentes do lakehouse prata para entender a transformação do modelo de dados personalizado. As tabelas de modelo de dados personalizado diferem em estrutura e organização em comparação com as tabelas convencionais baseadas em FHIR.
Exemplo: analisar o impacto do ambiente alimentar e das condições socioeconômicas em diabetes
Considere um cenário em que estamos tentando entender o impacto do ambiente alimentar e das condições socioeconômicas de um município no número de pacientes com diabetes naquele município.
O ambiente alimentar e a renda familiar mediana representam as informações SDOH dos conjuntos de dados públicos SDOH recentemente ingeridos, especificamente o Atlas do Ambiente Alimentar do USDA e os Dados SDOH da AHRQ. Você pode usar campos como o número de restaurantes de fast-food, número de mercearias e renda familiar mediana do modelo de dados SDOH (tabela SocialDeterminant) no lakehouse prata.
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
Por outro lado, o número de pacientes com diabetes refere-se às informações clínicas do pipeline clínico de soluções de dados de serviços de saúde, que também deve ser implantado e instalado. Você pode ingerir dados clínicos nesse pipeline ou usar os dados clínicos de exemplo fornecidos. Use campos como endereço do paciente e condição do paciente para recuperar as medidas necessárias.
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
Inerentemente, não há relação direta entre esses dois conjuntos de dados. O elemento de vinculação é seu detalhe de localização:
- Os dados do ambiente alimentar estão disponíveis em nível de município, acessíveis expandindo a coluna Locationjson na tabela SocialDeterminant e usando o campo
CountyFIPS
. - Os dados clínicos contêm endereços de pacientes no formato FHIR, a partir do qual você pode recuperar informações do município. Se somente o CEP do paciente estiver disponível, você poderá recuperá-lo e criar uma tabela de mapeamento de CEPs para códigos FIPS para vincular ao conjunto de dados SDOH. Essa tabela de mapeamento está prontamente disponível em repositórios de dados públicos.
Com os dados de localização preparados, você poderá vincular os dois conjuntos de dados para criar uma consulta do lakehouse ouro que exibe todos os pontos de dados necessários. Veja um exemplo de consulta SQL:
FROM
social_determinants sd
JOIN
patient_conditions pc
ON
sd.CountyFIPS = pc.STCOUNTYFP
Agora você pode analisar e visualizar o conjunto de dados final para determinar a relação entre o número de pacientes com diabetes e a presença de restaurantes de fast-food. Assim, a camada prata permite a normalização robusta de dados, permitindo que você construa consultas e obtenha insights abrangentes nos conjuntos de dados e entre diferentes conjuntos de dados.