|
4 | 4 | import streamlit as st # type: ignore
|
5 | 5 |
|
6 | 6 | from penn_chime.presentation import (
|
7 |
| - build_download_link, |
| 7 | + display_download_link, |
8 | 8 | display_header,
|
| 9 | + display_more_info, |
9 | 10 | display_sidebar,
|
10 |
| - draw_census_table, |
11 |
| - draw_projected_admissions_table, |
12 |
| - draw_raw_sir_simulation_table, |
13 | 11 | hide_menu_style,
|
14 |
| - show_additional_projections, |
15 |
| - show_more_info_about_this_tool, |
16 | 12 | write_definitions,
|
17 | 13 | write_footer,
|
18 | 14 | )
|
19 | 15 | from penn_chime.settings import DEFAULTS
|
20 | 16 | from penn_chime.models import SimSirModel
|
21 | 17 | from penn_chime.charts import (
|
22 |
| - additional_projections_chart, |
23 |
| - admitted_patients_chart, |
24 |
| - new_admissions_chart, |
25 |
| - chart_descriptions |
| 18 | + build_admits_chart, |
| 19 | + build_census_chart, |
| 20 | + build_descriptions, |
| 21 | + build_sim_sir_w_date_chart, |
| 22 | + build_table, |
26 | 23 | )
|
27 | 24 |
|
28 | 25 | # This is somewhat dangerous:
|
|
38 | 35 |
|
39 | 36 | if st.checkbox("Show more info about this tool"):
|
40 | 37 | notes = "The total size of the susceptible population will be the entire catchment area for Penn Medicine entities (HUP, PAH, PMC, CCH)"
|
41 |
| - show_more_info_about_this_tool(st=st, model=m, parameters=p, defaults=DEFAULTS, notes=notes) |
| 38 | + display_more_info(st=st, model=m, parameters=p, defaults=DEFAULTS, notes=notes) |
42 | 39 |
|
43 | 40 | st.subheader("New Admissions")
|
44 | 41 | st.markdown("Projected number of **daily** COVID-19 admissions at Penn hospitals")
|
45 |
| -new_admit_chart = new_admissions_chart(alt, m.admits_df, parameters=p) |
46 |
| -st.altair_chart( |
47 |
| - new_admissions_chart(alt, m.admits_df, parameters=p), |
48 |
| - use_container_width=True, |
| 42 | +admits_chart = build_admits_chart(alt=alt, admits_df=m.admits_df, max_y_axis=p.max_y_axis) |
| 43 | +st.altair_chart(admits_chart, use_container_width=True) |
| 44 | +st.markdown(build_descriptions(chart=admits_chart, labels=p.labels)) |
| 45 | +display_download_link( |
| 46 | + st, |
| 47 | + filename=f"{p.current_date}_projected_admits.csv", |
| 48 | + df=m.admits_df, |
49 | 49 | )
|
50 | 50 |
|
51 |
| -st.markdown(chart_descriptions(new_admit_chart, p.labels)) |
52 |
| - |
53 | 51 | if st.checkbox("Show Projected Admissions in tabular form"):
|
54 |
| - if st.checkbox("Show Daily Counts"): |
55 |
| - draw_projected_admissions_table(st, m.admits_df, p.labels, 1, as_date=p.as_date) |
56 |
| - else: |
57 |
| - admissions_day_range = st.slider( |
58 |
| - label="Interval of Days", |
59 |
| - key="admissions_day_range_slider", |
60 |
| - min_value=1, |
61 |
| - max_value=10, |
62 |
| - value=7 |
63 |
| - ) |
64 |
| - draw_projected_admissions_table(st, m.admits_df, p.labels, admissions_day_range, as_date=p.as_date) |
65 |
| - build_download_link(st, |
66 |
| - filename="projected_admissions.csv", |
| 52 | + admits_modulo = 1 |
| 53 | + if not st.checkbox("Show Daily Counts"): |
| 54 | + admits_modulo = 7 |
| 55 | + table_df = build_table( |
67 | 56 | df=m.admits_df,
|
68 |
| - parameters=p |
69 |
| - ) |
| 57 | + labels=p.labels, |
| 58 | + modulo=admits_modulo) |
| 59 | + st.table(table_df) |
| 60 | + |
| 61 | + |
70 | 62 | st.subheader("Admitted Patients (Census)")
|
71 |
| -st.markdown( |
72 |
| - "Projected **census** of COVID-19 patients, accounting for arrivals and discharges at Penn hospitals" |
73 |
| -) |
74 |
| -census_chart = admitted_patients_chart(alt=alt, census=m.census_df, parameters=p) |
75 |
| -st.altair_chart( |
76 |
| - admitted_patients_chart(alt=alt, census=m.census_df, parameters=p), |
77 |
| - use_container_width=True, |
| 63 | +st.markdown("Projected **census** of COVID-19 patients, accounting for arrivals and discharges at Penn hospitals") |
| 64 | +census_chart = build_census_chart(alt=alt, census_df=m.census_df, max_y_axis=p.max_y_axis) |
| 65 | +st.altair_chart(census_chart, use_container_width=True) |
| 66 | +st.markdown(build_descriptions(chart=census_chart, labels=p.labels, suffix=" Census")) |
| 67 | +display_download_link( |
| 68 | + st, |
| 69 | + filename=f"{p.current_date}_projected_census.csv", |
| 70 | + df=m.census_df, |
78 | 71 | )
|
79 |
| -st.markdown(chart_descriptions(census_chart, p.labels, suffix=" Census")) |
| 72 | + |
80 | 73 | if st.checkbox("Show Projected Census in tabular form"):
|
81 |
| - if st.checkbox("Show Daily Census Counts"): |
82 |
| - draw_census_table(st, m.census_df, p.labels, 1, as_date=p.as_date) |
83 |
| - else: |
84 |
| - census_day_range = st.slider( |
85 |
| - label='Interval of Days', |
86 |
| - key="census_day_range_slider", |
87 |
| - min_value=1, |
88 |
| - max_value=10, |
89 |
| - value=7 |
90 |
| - ) |
91 |
| - draw_census_table(st, m.census_df, p.labels, census_day_range, as_date=p.as_date) |
92 |
| - build_download_link(st, |
93 |
| - filename="projected_census.csv", |
| 74 | + census_modulo = 1 |
| 75 | + if not st.checkbox("Show Daily Census Counts"): |
| 76 | + census_modulo = 7 |
| 77 | + table_df = build_table( |
94 | 78 | df=m.census_df,
|
95 |
| - parameters=p |
96 |
| - ) |
| 79 | + labels=p.labels, |
| 80 | + modulo=census_modulo) |
| 81 | + st.table(table_df) |
| 82 | + |
97 | 83 |
|
98 |
| -st.markdown( |
99 |
| - """**Click the checkbox below to view additional data generated by this simulation**""" |
| 84 | +st.subheader("Susceptible, Infected, and Recovered") |
| 85 | +st.markdown("The number of susceptible, infected, and recovered individuals in the hospital catchment region at any given moment") |
| 86 | +sim_sir_w_date_chart = build_sim_sir_w_date_chart(alt=alt, sim_sir_w_date_df=m.sim_sir_w_date_df) |
| 87 | +st.altair_chart(sim_sir_w_date_chart, use_container_width=True) |
| 88 | +display_download_link( |
| 89 | + st, |
| 90 | + filename=f"{p.current_date}_sim_sir_w_date.csv", |
| 91 | + df=m.sim_sir_w_date_df, |
100 | 92 | )
|
101 |
| -if st.checkbox("Show Additional Projections"): |
102 |
| - show_additional_projections( |
103 |
| - st, alt, additional_projections_chart, model=m, parameters=p |
104 |
| - ) |
105 |
| - if st.checkbox("Show Raw SIR Simulation Data"): |
106 |
| - draw_raw_sir_simulation_table(st, model=m, parameters=p) |
| 93 | + |
| 94 | +if st.checkbox("Show SIR Simulation in tabular form"): |
| 95 | + table_df = build_table( |
| 96 | + df=m.sim_sir_w_date_df, |
| 97 | + labels=p.labels) |
| 98 | + st.table(table_df) |
| 99 | + |
107 | 100 | write_definitions(st)
|
108 | 101 | write_footer(st)
|
0 commit comments