From eb69b5d55315997523829d67345caefda3034e68 Mon Sep 17 00:00:00 2001 From: frankknoll Date: Thu, 9 Nov 2023 11:29:38 +0100 Subject: [PATCH] making symptoms for scatter chart axes selectable --- docs/SymptomsCausedByCOVIDLots/index.html | 26358 +++++++++++++++- .../js/PageInitializer.js | 30 +- .../js/SymptomVsSymptomChartView.js | 7 - 3 files changed, 26383 insertions(+), 12 deletions(-) diff --git a/docs/SymptomsCausedByCOVIDLots/index.html b/docs/SymptomsCausedByCOVIDLots/index.html index 1f48be1bb12..5b2015cb1f9 100644 --- a/docs/SymptomsCausedByCOVIDLots/index.html +++ b/docs/SymptomsCausedByCOVIDLots/index.html @@ -54,7 +54,11 @@ prrBySymptomTableElement: $('#prrBySymptomTable'), downloadPrrBySymptomTableButton: document.querySelector("#downloadPrrBySymptomTable") }, - symptomVsSymptomChartViewElement: document.querySelector('#symptomVsSymptomChartView') + symptomVsSymptomChart: { + symptomSelectXElement: $('#symptomSelectX'), + symptomSelectYElement: $('#symptomSelectY'), + symptomVsSymptomChartViewElement: document.querySelector('#symptomVsSymptomChartView') + } } ); }); @@ -13831,10 +13835,26360 @@
-

Worst Batches Bla Bla

+

Comparison of the PRRs of two Symptoms

+
+ + +
+
+ + +
diff --git a/docs/SymptomsCausedByCOVIDLots/js/PageInitializer.js b/docs/SymptomsCausedByCOVIDLots/js/PageInitializer.js index 8cb9b3f2ae1..a9c5eca986e 100644 --- a/docs/SymptomsCausedByCOVIDLots/js/PageInitializer.js +++ b/docs/SymptomsCausedByCOVIDLots/js/PageInitializer.js @@ -1,12 +1,13 @@ class PageInitializer { static #symptomVsSymptomChartView; + static #symptomX = 'Immunosuppression'; + static #symptomY = 'Immunoglobulin therapy'; - static initializePage({ symptom, vaccine, symptomVsSymptomChartViewElement }) { + static initializePage({ symptom, vaccine, symptomVsSymptomChart }) { PageInitializer.#configureSymptom(symptom); PageInitializer.#configureVaccine(vaccine); - PageInitializer.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement); - PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart('Immunosuppression', 'Immunoglobulin therapy'); + PageInitializer.#configureSymptomVsSymptomChart(symptomVsSymptomChart); } static #configureSymptom({ symptomSelectElement, prrByVaccineTableElement, downloadPrrByVaccineTableButton }) { @@ -29,6 +30,29 @@ class PageInitializer { }); } + static #configureSymptomVsSymptomChart({ symptomSelectXElement, symptomSelectYElement, symptomVsSymptomChartViewElement }) { + PageInitializer.#symptomVsSymptomChartView = new SymptomVsSymptomChartView(symptomVsSymptomChartViewElement); + PageInitializer.#initializeSelectElement( + { + selectElement: symptomSelectXElement, + onValueSelected: symptomX => { + PageInitializer.#symptomX = symptomX; + PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY); + }, + minimumInputLength: 0 + }); + PageInitializer.#initializeSelectElement( + { + selectElement: symptomSelectYElement, + onValueSelected: symptomY => { + PageInitializer.#symptomY = symptomY; + PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY); + }, + minimumInputLength: 0 + }); + PageInitializer.#symptomVsSymptomChartView.loadAndDisplayChart(PageInitializer.#symptomX, PageInitializer.#symptomY); + } + static #initializeSelectElement({ selectElement, onValueSelected, minimumInputLength }) { selectElement.select2({ minimumInputLength: minimumInputLength }); selectElement.on( diff --git a/docs/SymptomsCausedByCOVIDLots/js/SymptomVsSymptomChartView.js b/docs/SymptomsCausedByCOVIDLots/js/SymptomVsSymptomChartView.js index c9aa6443daa..e9a837563a3 100644 --- a/docs/SymptomsCausedByCOVIDLots/js/SymptomVsSymptomChartView.js +++ b/docs/SymptomsCausedByCOVIDLots/js/SymptomVsSymptomChartView.js @@ -7,7 +7,6 @@ class SymptomVsSymptomChartView { this.#canvas = canvas; } - // FK-TODO: refactor loadAndDisplayChart(symptomX, symptomY) { Promise .all([symptomX, symptomY].map(symptom => PrrByVaccineProvider.getPrrByVaccine(symptom))) @@ -18,12 +17,6 @@ class SymptomVsSymptomChartView { }); } - setData(histoDescr) { - const data = this.#getData(histoDescr); - this.#chart.config.data = data; - this.#chart.update(); - } - #displayChart(symptomX, symptomY, labels, data) { if (this.#chart != null) { this.#chart.destroy();