Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions site/epivis.html
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ <h1>Load from Epidata API</h1>
<div class="option_label"><label><input type="radio" name="source_radio" id="radio_nowcast" /> Delphi Nowcast</label></div><span class="explanation">(source: <a target="_blank" href="https://delphi.cmu.edu/">delphi.cmu.edu</a>)</span>
<br />
<div class="option_label"><label><input type="radio" name="source_radio" id="radio_covidcast" /> Delphi COVIDcast</label></div><span class="explanation">(source: <a target="_blank" href="https://delphi.cmu.edu/">delphi.cmu.edu</a>)</span>
<br />
<div class="option_label"><label><input type="radio" name="source_radio" id="radio_covid_hosp" /> COVID Hospitalization</label></div><span class="explanation">(source: <a target="_blank" href="https://healthdata.gov/dataset/covid-19-reported-patient-impact-and-hospital-capacity-state-timeseries">healthdata.gov</a>)</span>
<div class="csv_options" id="radio_fluview_options">
<div class="option_label">
<select name="select_fluview_region" id="select_fluview_region">
Expand Down Expand Up @@ -991,6 +993,78 @@ <h1>Load from Epidata API</h1>
</select>
</div><span class="explanation">(location to filter data by)</span>
</div>
<div class="csv_options" id="radio_covid_hosp_options" style="display: none;">
<div class="option_label">
<select name="select_covid_hosp_state" id="select_covid_hosp_state">
<option value="AK">AK</option>
<option value="AL">AL</option>
<option value="AR">AR</option>
<option value="AZ">AZ</option>
<option value="CA">CA</option>
<option value="CO">CO</option>
<option value="CT">CT</option>
<option value="DE">DE</option>
<option value="FL">FL</option>
<option value="GA">GA</option>
<option value="HI">HI</option>
<option value="IA">IA</option>
<option value="ID">ID</option>
<option value="IL">IL</option>
<option value="IN">IN</option>
<option value="KS">KS</option>
<option value="KY">KY</option>
<option value="LA">LA</option>
<option value="MA">MA</option>
<option value="MD">MD</option>
<option value="ME">ME</option>
<option value="MI">MI</option>
<option value="MN">MN</option>
<option value="MO">MO</option>
<option value="MS">MS</option>
<option value="MT">MT</option>
<option value="NC">NC</option>
<option value="ND">ND</option>
<option value="NE">NE</option>
<option value="NH">NH</option>
<option value="NJ">NJ</option>
<option value="NM">NM</option>
<option value="NV">NV</option>
<option value="NY">NY</option>
<option value="OH">OH</option>
<option value="OK">OK</option>
<option value="OR">OR</option>
<option value="PA">PA</option>
<option value="RI">RI</option>
<option value="SC">SC</option>
<option value="SD">SD</option>
<option value="TN">TN</option>
<option value="TX">TX</option>
<option value="UT">UT</option>
<option value="VA">VA</option>
<option value="VT">VT</option>
<option value="WA">WA</option>
<option value="WI">WI</option>
<option value="WV">WV</option>
<option value="WY">WY</option>
<option value="DC">District of Columbia</option>
<option value="PR">Puerto Rico</option>
<option value="VI">Virgin Islands</option>
</select>
</div><span class="explanation">(location to filter data by)</span>
<br />
<div class="option_label"><label><input type="radio" name="covid_hosp_issue_radio" id="radio_covid_hosp_recent" checked="checked" /> Most Recent Issue</label></div><span class="explanation">(fetch the most up-to-date/stable data)</span>
<br />
<div class="option_label"><label><input type="radio" name="covid_hosp_issue_radio" id="radio_covid_hosp_static" /> Specific Issue</label></div><span class="explanation">(fetch data "as-of" a specific date)</span>
<br />
<div class="csv_options" id="radio_covid_hosp_recent_options">
<span class="explanation">(this option has no additional parameters)</span>
<br />
</div>
<div class="csv_options" id="radio_covid_hosp_static_options" style="display: none;">
<div class="option_label"><label><input type="text" id="text_covid_hosp_static" value="20201116" /> What date was the dataset published?</label></div> <span class="explanation">(format: YYYYMMDD)</span>
<br />
</div>
</div>
<div class="csv_options" id="radio_covidcast_options" style="display: none;">
<div class="option_label">
<select name="select_covidcast_source" id="select_covidcast_data_source">
Expand Down
27 changes: 26 additions & 1 deletion site/js/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ function run() {
"radio_quidel",
"radio_sensors",
"radio_nowcast",
"radio_covidcast"
"radio_covidcast",
"radio_covid_hosp"
]);
connectSubOptions([
"radio_fluview_recent",
Expand All @@ -69,6 +70,10 @@ function run() {
connectSubOptions(["check_wiki_hour"]);
connectSubOptions(["check_date"]);
connectSubOptions(["check_group"]);
connectSubOptions([
"radio_covid_hosp_recent",
"radio_covid_hosp_static"
]);

// top button bar
setActionTooltip(
Expand Down Expand Up @@ -467,6 +472,25 @@ function loadEpidata() {
geoType,
geoValue);
})();
} else if ($("#radio_covid_hosp").is(":checked")) {
(() => {
const state_v = $("#select_covid_hosp_state :selected").val();
const state_t = $("#select_covid_hosp_state :selected").text();
let title = "COVID Hospitalization: " + state_t;
let issue;
if ($("#radio_covid_hosp_static").is(":checked")) {
issue = parseInt($("#text_covid_hosp_static").val(), 10);
title += " (issued on " + issue + ")";
} else {
title += " (most recent issue)";
}

Epidata.fetchCovidHosp(
successFunction(title),
onFailure,
state_v,
issue);
})();
} else {
alert("invalid api");
}
Expand Down Expand Up @@ -1143,6 +1167,7 @@ const loadDirectLinkFragment = () => {
'sensors': Epidata.fetchSensors,
'nowcast': Epidata.fetchNowcast,
'covidcast': Epidata.fetchCovidcast,
'covid_hosp': Epidata.fetchCovidHosp,
}[data.params[0]];
const onSuccess = (datasets) => {
const loader = successFunction(data.parentTitle);
Expand Down
81 changes: 71 additions & 10 deletions site/js/epidata.js
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ var Epidata = (function() {
'twitter': 20111201,
'wiki': 20071209,
'covidcast': 20200101,
'covid_hosp': 20200101,
};
// find the current epiweek and date
var date = new Date();
Expand All @@ -36,12 +37,12 @@ var Epidata = (function() {
points = [];
for(row = 0; row < epidata.length; row++) {
if(epidata[row].hasOwnProperty('time_value')) {
const timeValue = epidata[row].time_value;
if ('' + timeValue.length == 6) {
epidata[row].epiweek = timeValue;
} else {
epidata[row].date = '' + timeValue;
}
const timeValue = epidata[row].time_value;
if ('' + timeValue.length == 6) {
epidata[row].epiweek = timeValue;
} else {
epidata[row].date = '' + timeValue;
}
}
if(epidata[row].hasOwnProperty('date')) {
date = EpiVis.Date.parse(epidata[row].date);
Expand Down Expand Up @@ -153,10 +154,70 @@ var Epidata = (function() {
api.nowcast(getCallback(onSuccess, onFailure, columns, params), location, [api.range(first_epiweek.nowcast, current_epiweek)]);
},
fetchCovidcast: (onSuccess, onFailure, dataSource, signal, timeType, geoType, geoValue) => {
const params = ['covidcast', dataSource, signal, timeType, geoType, geoValue];
const columns = ['value', 'stderr', 'sample_size'];
const timeValue = [api.range(first_date.covidcast, current_date)];
api.covidcast(getCallback(onSuccess, onFailure, columns, params), dataSource, signal, timeType, geoType, timeValue, geoValue);
const params = ['covidcast', dataSource, signal, timeType, geoType, geoValue];
const columns = ['value', 'stderr', 'sample_size'];
const timeValue = [api.range(first_date.covidcast, current_date)];
api.covidcast(getCallback(onSuccess, onFailure, columns, params), dataSource, signal, timeType, geoType, timeValue, geoValue);
},
fetchCovidHosp: (onSuccess, onFailure, state, issue) => {
const params = ['covid_hosp', state, issue];
const columns = [
'hospital_onset_covid',
'hospital_onset_covid_coverage',
'inpatient_beds',
'inpatient_beds_coverage',
'inpatient_beds_used',
'inpatient_beds_used_coverage',
'inpatient_beds_used_covid',
'inpatient_beds_used_covid_coverage',
'previous_day_admission_adult_covid_confirmed',
'previous_day_admission_adult_covid_confirmed_coverage',
'previous_day_admission_adult_covid_suspected',
'previous_day_admission_adult_covid_suspected_coverage',
'previous_day_admission_pediatric_covid_confirmed',
'previous_day_admission_pediatric_covid_confirmed_coverage',
'previous_day_admission_pediatric_covid_suspected',
'previous_day_admission_pediatric_covid_suspected_coverage',
'staffed_adult_icu_bed_occupancy',
'staffed_adult_icu_bed_occupancy_coverage',
'staffed_icu_adult_patients_confirmed_suspected_covid',
'staffed_icu_adult_patients_confirmed_suspected_covid_coverage',
'staffed_icu_adult_patients_confirmed_covid',
'staffed_icu_adult_patients_confirmed_covid_coverage',
'total_adult_patients_hosp_confirmed_suspected_covid',
'total_adult_patients_hosp_confirmed_suspected_covid_coverage',
'total_adult_patients_hosp_confirmed_covid',
'total_adult_patients_hosp_confirmed_covid_coverage',
'total_pediatric_patients_hosp_confirmed_suspected_covid',
'total_pediatric_patients_hosp_confirmed_suspected_covid_coverage',
'total_pediatric_patients_hosp_confirmed_covid',
'total_pediatric_patients_hosp_confirmed_covid_coverage',
'total_staffed_adult_icu_beds',
'total_staffed_adult_icu_beds_coverage',
'inpatient_beds_utilization',
'inpatient_beds_utilization_coverage',
'inpatient_beds_utilization_numerator',
'inpatient_beds_utilization_denominator',
'percent_of_inpatients_with_covid',
'percent_of_inpatients_with_covid_coverage',
'percent_of_inpatients_with_covid_numerator',
'percent_of_inpatients_with_covid_denominator',
'inpatient_bed_covid_utilization',
'inpatient_bed_covid_utilization_coverage',
'inpatient_bed_covid_utilization_numerator',
'inpatient_bed_covid_utilization_denominator',
'adult_icu_bed_covid_utilization',
'adult_icu_bed_covid_utilization_coverage',
'adult_icu_bed_covid_utilization_numerator',
'adult_icu_bed_covid_utilization_denominator',
'adult_icu_bed_utilization',
'adult_icu_bed_utilization_coverage',
'adult_icu_bed_utilization_numerator',
'adult_icu_bed_utilization_denominator',
];
const callback = getCallback(onSuccess, onFailure, columns, params);
const dates = [api.range(first_date.covid_hosp, current_date)];
api.covid_hosp(callback, state, dates, issue);
},
};
}());
1 change: 1 addition & 0 deletions site/js/epivis.js
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ var EpiVis = (function() {
return (((year % 4) === 0) && ((year % 100) !== 0)) || ((year % 400) === 0);
};
Date.parse = function(str) {
str = '' + str;
var y, m, d;
if(str.length === 8) {
y = parseInt(str.substring(0, 4), 10);
Expand Down