تمرين - استكشاف بيانات SDOH في البحيرات

مكتمل

في هذا التمرين، يمكنك استكشاف البيانات التي قمت بتحميلها في OneLake. يمكنك استخدام البيانات في مستودع الفضة لفهم مدى تأثير البيئة الغذائية والتركيب الاقتصادي الاجتماعي لمنطقة ما على عدد المرضى الذين يعانون من مرض السكري.

تحليل البيانات من منصة سيلفر ليك هاوس

الآن، يمكنك الاستعلام عن مطاعم الوجبات السريعة ودخل الأسرة الوسيط من منطقة ما لعرض المقاييس ذات الصلة.

  1. حدد مساحة عمل FL HC Cloud التي قمت بإنشائها.

  2. حدد موقع FLHealthcare_msft_silver lakehouse وافتحه.

  3. حدد فتح دفتر الملاحظات > دفتر ملاحظات جديد.

  4. الصق الاستعلام التالي. استبدل FL بالأحرف الأولى من اسمك.

    %%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;
    
  5. حدد Run cell.

  6. يتم عرض النتائج على النحو التالي. حدد + New chart.

    يشبه المخطط المقترح الأول الصورة التالية.

    الآن، يمكنك إضافة المريض إلى الاستعلام وربط سجلات المريض بالمحددات الاجتماعية لبيانات الصحة (SDOH) للحصول على ملخص على مستوى الحالة.

  7. حدد إضافة خلية برمجية.

  8. الصق الاستعلام التالي. استبدل FL بالأحرف الأولى من اسمك.

    %%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;
    
  9. حدد Run cell.

  10. يتم عرض النتائج التالية. حدد + New chart.

    يعرض المخطط المقترح الأول كما يلي.

  11. من منطقة المخططات المقترحة، قم بتحديد متوسط Fast_food_restaurants_2016.

    يعرض المخطط كما يلي.

  12. حدد مخطط متوسط دخل الأسر بواسطة إجمالي مرضى الربو . هذا المخطط هو مثال جيد على الجمع بين حالة المريض وبيانات المحددات الاجتماعية.