From 8f04a22142b995ab2aee3647904b0dc4e22f8546 Mon Sep 17 00:00:00 2001 From: Frank Knoll Date: Tue, 16 Jul 2024 13:25:54 +0200 Subject: [PATCH 1/3] refactoring --- docs/SymptomsCausedByDrugs/js/PdfCreator.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/SymptomsCausedByDrugs/js/PdfCreator.js b/docs/SymptomsCausedByDrugs/js/PdfCreator.js index d5b49090611..5986d69fcea 100644 --- a/docs/SymptomsCausedByDrugs/js/PdfCreator.js +++ b/docs/SymptomsCausedByDrugs/js/PdfCreator.js @@ -1,14 +1,17 @@ class PdfCreator { - static createPdf({ symptom, vaccine, heading, valueName }) { - const documentDefinition = { + static createPdf(pdf) { + return pdfMake.createPdf(PdfCreator.#createDocumentDefinition(pdf)); + } + + static #createDocumentDefinition({ symptom, vaccine, heading, valueName }) { + return { content: [ PdfCreator.#getPageHeading(heading), ...PdfCreator.#getWorstDrugsSection(symptom, valueName), ...PdfCreator.#getStrongestSymptomsSection(vaccine) ] - } - return pdfMake.createPdf(documentDefinition); + }; } static #getPageHeading(heading) { From 34107357cf88075f078872b0d5b5601e0347c56f Mon Sep 17 00:00:00 2001 From: Frank Knoll Date: Tue, 16 Jul 2024 23:53:07 +0200 Subject: [PATCH 2/3] MarkRowsIfPrrTooHigh --- docs/SymptomsCausedByDrugs/js/PdfCreator.js | 51 +++++++++++++++++---- 1 file changed, 43 insertions(+), 8 deletions(-) diff --git a/docs/SymptomsCausedByDrugs/js/PdfCreator.js b/docs/SymptomsCausedByDrugs/js/PdfCreator.js index 5986d69fcea..6b775e5aaba 100644 --- a/docs/SymptomsCausedByDrugs/js/PdfCreator.js +++ b/docs/SymptomsCausedByDrugs/js/PdfCreator.js @@ -27,14 +27,14 @@ class PdfCreator { static #getWorstDrugsSection({ selectElement, table }, valueName) { return [ PdfCreator.#getHeading(`Worst ${valueName} for "${PdfCreator.#getSelection(selectElement)}"`), - PdfCreator.#getTable(table) + PdfCreator.#getTable(table, true) ]; } static #getStrongestSymptomsSection({ selectElement, table }) { return [ PdfCreator.#getHeading(`Strongest Symptoms for "${PdfCreator.#getSelection(selectElement)}"`), - PdfCreator.#getTable(table) + PdfCreator.#getTable(table, false) ]; } @@ -52,17 +52,14 @@ class PdfCreator { return selectElement.select2('data')[0].text; } - // FK-TODO: add red background to some rows - static #getTable(table) { - const headers = PdfCreator.#getTableHeaders(table); - const rows = table.rows({ search: 'applied' }).data().toArray(); + static #getTable(table, shallMarkRowsIfPrrTooHigh) { return { layout: 'lightHorizontalLines', table: { headerRows: 1, body: [ - headers, - ...rows + PdfCreator.#getTableHeaders(table), + ...PdfCreator.#getMarkedRows(table, shallMarkRowsIfPrrTooHigh) ] } }; @@ -78,4 +75,42 @@ class PdfCreator { })) .toArray(); } + + static #getMarkedRows(table, shallMarkRowsIfPrrTooHigh) { + const rows = PdfCreator.#getRows(table); + return shallMarkRowsIfPrrTooHigh ? + PdfCreator.#markRowsIfPrrTooHigh(rows) : + rows; + } + + static #getRows(table) { + return table + .rows({ search: 'applied' }) + .data() + .toArray(); + } + + static #markRowsIfPrrTooHigh(rows) { + return rows.map(PdfCreator.#markRowIfPrrTooHigh); + } + + static #markRowIfPrrTooHigh(row) { + const prr = row[1]; + return [ + PdfCreator.#markValueIfPrrTooHigh({ value: row[0], prr: prr }), + PdfCreator.#markValueIfPrrTooHigh({ value: row[1], prr: prr }) + ]; + } + + static #markValueIfPrrTooHigh({ value, prr }) { + return prr >= 2.0 ? PdfCreator.#markValue(value) : value; + } + + static #markValue(value) { + return { + text: value, + fillColor: '#FF0000', + fillOpacity: 0.1, + }; + } } \ No newline at end of file From c50f2acdf844515a5be36097111bb4758c0b1ef9 Mon Sep 17 00:00:00 2001 From: Frank Knoll Date: Wed, 17 Jul 2024 00:19:24 +0200 Subject: [PATCH 3/3] adding link to origin in PdfCreator --- docs/SymptomsCausedByDrugs/js/PdfCreator.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/docs/SymptomsCausedByDrugs/js/PdfCreator.js b/docs/SymptomsCausedByDrugs/js/PdfCreator.js index 6b775e5aaba..f925ee6024f 100644 --- a/docs/SymptomsCausedByDrugs/js/PdfCreator.js +++ b/docs/SymptomsCausedByDrugs/js/PdfCreator.js @@ -9,7 +9,8 @@ class PdfCreator { content: [ PdfCreator.#getPageHeading(heading), ...PdfCreator.#getWorstDrugsSection(symptom, valueName), - ...PdfCreator.#getStrongestSymptomsSection(vaccine) + ...PdfCreator.#getStrongestSymptomsSection(vaccine), + PdfCreator.#link2Origin() ] }; } @@ -113,4 +114,20 @@ class PdfCreator { fillOpacity: 0.1, }; } + + static #link2Origin() { + return { + text: + [ + 'Origin: ', + { + text: window.location.href, + color: 'blue', + decoration: 'underline', + link: window.location.href + } + ], + margin: [0, 10] + } + } } \ No newline at end of file