Skip to content

Commit 76dd9b9

Browse files
authored
Fix issue 255
Fix issue 255
2 parents 80f8551 + 0eed3c6 commit 76dd9b9

23 files changed

+1191
-647
lines changed

date_first_hospitalized.cfg

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--current-hospitalized 14
2+
--date-first-hospitalized 2020-03-07
3+
--hospitalized-los 7
4+
--hospitalized-rate 0.025
5+
--icu-los 9
6+
--icu-rate 0.0075
7+
--infectious-days 14
8+
--known-infected 510
9+
--market_share 0.15
10+
--n-days 60
11+
--population 4119405
12+
--relative-contact-rate 0.3
13+
--ventilated-los 10
14+
--ventilated-rate 0.005

doubling_time.cfg

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
--current-hospitalized 14
2+
--doubling-time 4.0
3+
--hospitalized-los 7
4+
--hospitalized-rate 0.025
5+
--icu-los 9
6+
--icu-rate 0.0075
7+
--infectious-days 14
8+
--known-infected 510
9+
--market_share 0.15
10+
--n-days 60
11+
--population 4119405
12+
--relative-contact-rate 0.3
13+
--ventilated-los 10
14+
--ventilated-rate 0.005

e2e/cypress/integration/tests/actions.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ context('Actions', () => {
1010

1111
// This gets the "first" input from the sidebar. From clicking step up,
1212
// the Regional Population should increase from default 4119405 to 4219405.
13-
cy.get('input.st-al')
13+
cy.get('input.st-al').eq(1)
1414
.should('has.value', '4119406')
1515
})
1616
});

settings.cfg

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
--current-hospitalized 14
2-
--doubling-time 4.0
3-
--known-infected 510
4-
--relative-contact-rate 0.3
2+
--doubling-time 4.0
53
--hospitalized-los 7
64
--hospitalized-rate 0.025
75
--icu-los 9
86
--icu-rate 0.0075
7+
--infectious-days 14
98
--market_share 0.15
109
--n-days 60
1110
--population 4119405
11+
--relative-contact-rate 0.3
1212
--ventilated-los 10
1313
--ventilated-rate 0.005

src/app.py

Lines changed: 56 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,22 @@
44
import streamlit as st # type: ignore
55

66
from penn_chime.presentation import (
7-
build_download_link,
7+
display_download_link,
88
display_header,
9+
display_more_info,
910
display_sidebar,
10-
draw_census_table,
11-
draw_projected_admissions_table,
12-
draw_raw_sir_simulation_table,
1311
hide_menu_style,
14-
show_additional_projections,
15-
show_more_info_about_this_tool,
1612
write_definitions,
1713
write_footer,
1814
)
1915
from penn_chime.settings import DEFAULTS
2016
from penn_chime.models import SimSirModel
2117
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,
2623
)
2724

2825
# This is somewhat dangerous:
@@ -38,71 +35,67 @@
3835

3936
if st.checkbox("Show more info about this tool"):
4037
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)
4239

4340
st.subheader("New Admissions")
4441
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,
4949
)
5050

51-
st.markdown(chart_descriptions(new_admit_chart, p.labels))
52-
5351
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(
6756
df=m.admits_df,
68-
parameters=p
69-
)
57+
labels=p.labels,
58+
modulo=admits_modulo)
59+
st.table(table_df)
60+
61+
7062
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,
7871
)
79-
st.markdown(chart_descriptions(census_chart, p.labels, suffix=" Census"))
72+
8073
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(
9478
df=m.census_df,
95-
parameters=p
96-
)
79+
labels=p.labels,
80+
modulo=census_modulo)
81+
st.table(table_df)
82+
9783

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,
10092
)
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+
107100
write_definitions(st)
108101
write_footer(st)

0 commit comments

Comments
 (0)