Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rogerleite/2fcc5aaba571176bc41f8f3028eb3577 to your computer and use it in GitHub Desktop.
Save rogerleite/2fcc5aaba571176bc41f8f3028eb3577 to your computer and use it in GitHub Desktop.

Non-federal Acute Care Hospital Health IT Adoption

Mix.install([
  {:explorer, "~> 0.5.0"},
  {:vega_lite, "~> 0.1.4"},
  {:kino_vega_lite, "~> 0.1.1"}
])

Section

alias VegaLite, as: VL
alias Explorer.DataFrame
alias Explorer.Series

df = DataFrame.from_csv!("/Users/roger.leite/Downloads/aha.csv")
# DataFrame.names(df)
types = DataFrame.dtypes(df)

create_col = fn header ->
  case types[header] do
    :float -> header <> " float,"
    :string -> header <> " varchar,"
    :integer -> header <> " integer,"
  end
end

cols =
  "region,region_code,period,pct_hospitals_cehrt,pct_hospitals_cehrt_2015,pct_hospitals_find_clinical_info,pct_hospitals_send_clinical_info,pct_hospitals_receive_clinical_info,pct_hospitals_integrate_scr,pct_hospitals_send_receive_find_integrate,pct_hospitals_clinical_out,pct_hospitals_phi_out,pct_hospitals_hie_participate,pct_hospitals_netwk,pct_hospitals_api,pct_hospitals_integrate_pdmp,pct_hospitals_integrate_data_pdmp,pct_hospitals_epcs,pct_hospitals_patients_view,pct_hospitals_patients_download,pct_hospitals_patients_transmit,pct_hospitals_patients_vdt,pct_hospitals_basic_ehr_notes,pct_rural_hospitals_basic_ehr_notes,pct_small_hospitals_basic_ehr_notes,pct_critical_access_hospitals_basic_ehr_notes,pct_hospitals_basic_ehr_no_notes,pct_rural_hospitals_basic_ehr_no_notes,pct_small_hospitals_basic_ehr_no_notes,pct_critical_access_hospitals_basic_ehr_no_notes,pct_small_rural_hospitals_cehrt,pct_cah_hospitals_cehrt,pct_hospitals_share_labs_any_outside_provs,pct_hospitals_share_labs_any_outside_hospitals,pct_hospitals_share_labs_any_outside_ambu_provs,pct_hospitals_patients_ecopy_ehr,pct_hospitals_patients_ecopy_discharge_instr,pct_hospitals_share_care_summaries_any_outside_provs,pct_hospitals_share_care_summaries_any_outside_hospitals,pct_hospitals_share_care_summaries_any_outside_ambu_provs,pct_hospitals_patients_secure_message,pct_hospitals_integrate_any_clinical_info"

sql_cols = cols |> String.split(",") |> Enum.map(create_col)
"create table pct_hospitals_cehrt (#{sql_cols})"

# create table pct_hospitals_cehrt (region varchar,region_code varchar,period integer,pct_hospitals_cehrt float,pct_hospitals_cehrt_2015 float,pct_hospitals_find_clinical_info float,pct_hospitals_send_clinical_info float,pct_hospitals_receive_clinical_info float,pct_hospitals_integrate_scr float,pct_hospitals_send_receive_find_integrate float,pct_hospitals_clinical_out float,pct_hospitals_phi_out float,pct_hospitals_hie_participate float,pct_hospitals_netwk float,pct_hospitals_api float,pct_hospitals_integrate_pdmp float,pct_hospitals_integrate_data_pdmp float,pct_hospitals_epcs float,pct_hospitals_patients_view float,pct_hospitals_patients_download float,pct_hospitals_patients_transmit float,pct_hospitals_patients_vdt float,pct_hospitals_basic_ehr_notes float,pct_rural_hospitals_basic_ehr_notes varchar,pct_small_hospitals_basic_ehr_notes varchar,pct_critical_access_hospitals_basic_ehr_notes float,pct_hospitals_basic_ehr_no_notes float,pct_rural_hospitals_basic_ehr_no_notes varchar,pct_small_hospitals_basic_ehr_no_notes varchar,pct_critical_access_hospitals_basic_ehr_no_notes float,pct_small_rural_hospitals_cehrt float,pct_cah_hospitals_cehrt float,pct_hospitals_share_labs_any_outside_provs float,pct_hospitals_share_labs_any_outside_hospitals float,pct_hospitals_share_labs_any_outside_ambu_provs float,pct_hospitals_patients_ecopy_ehr float,pct_hospitals_patients_ecopy_discharge_instr float,pct_hospitals_share_care_summaries_any_outside_provs float,pct_hospitals_share_care_summaries_any_outside_hospitals float,pct_hospitals_share_care_summaries_any_outside_ambu_provs float,pct_hospitals_patients_secure_message float,pct_hospitals_integrate_any_clinical_info float)

# COPY pct_hospitals_cehrt(region,region_code,period,pct_hospitals_cehrt,pct_hospitals_cehrt_2015,pct_hospitals_find_clinical_info,pct_hospitals_send_clinical_info,pct_hospitals_receive_clinical_info,pct_hospitals_integrate_scr,pct_hospitals_send_receive_find_integrate,pct_hospitals_clinical_out,pct_hospitals_phi_out,pct_hospitals_hie_participate,pct_hospitals_netwk,pct_hospitals_api,pct_hospitals_integrate_pdmp,pct_hospitals_integrate_data_pdmp,pct_hospitals_epcs,pct_hospitals_patients_view,pct_hospitals_patients_download,pct_hospitals_patients_transmit,pct_hospitals_patients_vdt,pct_hospitals_basic_ehr_notes,pct_rural_hospitals_basic_ehr_notes,pct_small_hospitals_basic_ehr_notes,pct_critical_access_hospitals_basic_ehr_notes,pct_hospitals_basic_ehr_no_notes,pct_rural_hospitals_basic_ehr_no_notes,pct_small_hospitals_basic_ehr_no_notes,pct_critical_access_hospitals_basic_ehr_no_notes,pct_small_rural_hospitals_cehrt,pct_cah_hospitals_cehrt,pct_hospitals_share_labs_any_outside_provs,pct_hospitals_share_labs_any_outside_hospitals,pct_hospitals_share_labs_any_outside_ambu_provs,pct_hospitals_patients_ecopy_ehr,pct_hospitals_patients_ecopy_discharge_instr,pct_hospitals_share_care_summaries_any_outside_provs,pct_hospitals_share_care_summaries_any_outside_hospitals,pct_hospitals_share_care_summaries_any_outside_ambu_provs,pct_hospitals_patients_secure_message,pct_hospitals_integrate_any_clinical_info)
# FROM '/Users/roger.leite/Downloads/aha.csv' 
# WITH CSV HEADER DELIMITER ',';
# lines and columns
DataFrame.shape(df)
df2020 =
  DataFrame.filter_with(df, fn line ->
    Series.equal(line["period"], 2020)
  end)
DataFrame.shape(df2020)
rows2020 =
  df2020
  # |> DataFrame.select(["region", "pct_hospitals_cehrt"])
  |> DataFrame.to_rows()
VL.new(
  width: 800,
  height: 400,
  title: "Title sample",
  view: [fill: "#040506"]
)
|> VL.data_from_values(rows2020)
|> VL.mark(:line, size: 5, color: "#53ceff", tooltip: true)
|> VL.encode_field(:x, "region", title: "Region")
|> VL.encode_field(:y, "pct_hospitals_cehrt")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment