Esercizio - Esplorare i dati SDOH nei data lakehouse
In questo esercizio si esplorano i dati caricati in OneLake. È possibile utilizzare i dati nella silver lakehouse per comprendere in che misura l'ambiente alimentare e la composizione socioeconomica di un'area influiscono sul numero di pazienti con diabete.
Analizzare i dati dal Silver Lakehouse
Ora è possibile interrogare i ristoranti fast food e il reddito familiare mediano in un'area per visualizzare le metriche pertinenti.
Selezionare l'area di lavoro FL HC Cloud creata.
Trova e apri la FLHealthcare_msft_silver lakehouse.
Selezionare Apri notebook Nuovo notebook>.
Incolla la query seguente. Sostituire FL con le proprie iniziali.
%%sql SELECT sd.SocialDeterminantName, sd.SocialDeterminantValue, sd.SocialDeterminantDescription, parsedJson.CountyName AS CountyName, parsedJson.CountyFIPS AS CountyFIPS, parsedJson.StateName AS StateName FROM FLHealthcare_msft_silver.SocialDeterminant sd LATERAL VIEW json_tuple(sd.LocationJson, 'STATENAME', 'COUNTYNAME', 'COUNTYFIPS') parsedJson AS StateName, CountyName, CountyFIPS WHERE sd.SocialDeterminantName IN ('GROC16', 'FFR16', 'ACS_MEDIAN_HH_INC') AND sd.SocialDeterminantValue IS NOT NULL;Selezionare Esegui cella.
I risultati vengono visualizzati nel modo seguente. Selezionare + Nuovo grafico.
Il primo grafico suggerito è simile all'immagine seguente.
A questo punto, aggiungere il paziente alla query e correlare i record dei pazienti ai determinanti sociali della salute (SDOH) per ottenere un riepilogo a livello di stato.
Selezionare Aggiungi cella di codice.
Incolla la query seguente. Sostituire FL con le proprie iniziali.
%%sql WITH base_query AS ( SELECT sd.SocialDeterminantName, CAST(sd.SocialDeterminantValue AS DOUBLE) AS SocialDeterminantValue, -- Ensure Numeric Data UPPER(sd.StateName) AS State, -- Standardized State Format sd.CountyName AS County, sd.CountyFIPS FROM ( SELECT SocialDeterminantName, SocialDeterminantValue, SocialDeterminantDescription, parsedJson.CountyName AS CountyName, parsedJson.CountyFIPS AS CountyFIPS, UPPER(parsedJson.StateName) AS StateName -- Standardized Case FROM FLHealthcare_msft_silver.SocialDeterminant sd LATERAL VIEW json_tuple(sd.LocationJson, 'STATENAME', 'COUNTYNAME', 'COUNTYFIPS') parsedJson AS StateName, CountyName, CountyFIPS ) sd WHERE sd.SocialDeterminantName IN ('GROC16', 'FFR16', 'ACS_MEDIAN_HH_INC', 'SAIPE_PCT_POV') AND sd.SocialDeterminantValue IS NOT NULL ), social_determinants AS ( SELECT State, MAX(CASE WHEN SocialDeterminantName = 'GROC16' THEN SocialDeterminantValue END) AS Grocery_stores_2016, MAX(CASE WHEN SocialDeterminantName = 'FFR16' THEN SocialDeterminantValue END) AS Fast_food_restaurants_2016, MAX(CASE WHEN SocialDeterminantName = 'ACS_MEDIAN_HH_INC' THEN SocialDeterminantValue END) AS Median_household_income, MAX(CASE WHEN SocialDeterminantName = 'SAIPE_PCT_POV' THEN SocialDeterminantValue END) AS Estimated_percentage_of_people_of_all_ages_in_poverty FROM base_query GROUP BY State ), ExpandedPatients AS ( SELECT p.idOrig AS id_orig, address_item.postalCode AS postalCode, UPPER(address_item.state) AS state -- Standardized Case FROM FLHealthcare_msft_silver.Patient p LATERAL VIEW explode(p.address) exploded_address AS address_item ), patient_conditions AS ( SELECT ep.state AS State, COUNT(DISTINCT CASE WHEN c.code.text LIKE '%Asthma%' THEN ep.id_orig END) AS Total_Asthma_Patients, COUNT(DISTINCT CASE WHEN c.code.text LIKE '%Diabetes%' THEN ep.id_orig END) AS Total_Diabetes_Patients, COUNT(DISTINCT CASE WHEN c.code.text LIKE '%Hypertension%' THEN ep.id_orig END) AS Total_Hypertension_Patients FROM ExpandedPatients ep JOIN FLHealthcare_msft_silver.Condition c ON ep.id_orig = c.subject.idOrig GROUP BY ep.state ) SELECT sd.State, COALESCE(sd.Grocery_stores_2016, 0) AS Grocery_stores_2016, COALESCE(sd.Fast_food_restaurants_2016, 0) AS Fast_food_restaurants_2016, COALESCE(sd.Median_household_income, 0) AS Median_household_income, -- Ensure No NULLs COALESCE(sd.Estimated_percentage_of_people_of_all_ages_in_poverty, 0) AS Estimated_percentage_of_people_of_all_ages_in_poverty, COALESCE(pc.Total_Asthma_Patients, 0) AS Total_Asthma_Patients, COALESCE(pc.Total_Diabetes_Patients, 0) AS Total_Diabetes_Patients, COALESCE(pc.Total_Hypertension_Patients, 0) AS Total_Hypertension_Patients FROM social_determinants sd LEFT JOIN patient_conditions pc ON sd.State = pc.State;Selezionare Esegui cella.
Vengono visualizzati i risultati seguenti. Selezionare + Nuovo grafico.
Il primo grafico suggerito viene visualizzato come segue.
Nell'area Grafici suggeriti selezionare Media di Fast_food_restaurants_2016.
Il grafico viene visualizzato come segue.
Seleziona il grafico Median_household_income per Total_Asthma_Patients. Questo grafico è un buon esempio di combinazione della condizione del paziente con i dati dei determinanti sociali.