refactoring
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
class PrrByVaccineProvider {
|
class PrrByVaccineProvider {
|
||||||
|
|
||||||
static getPrrByVaccine(symptom) {
|
static getPrrByVaccine(symptom) {
|
||||||
return fetch(`./data/ProportionalReportingRatios/symptoms/${symptom}.json`).then(response => response.json());
|
return fetch(`./data/ProportionalReportingRatios/symptoms/${symptom}`).then(response => response.json());
|
||||||
}
|
}
|
||||||
|
|
||||||
static getPrrBySymptom(vaccine) {
|
static getPrrBySymptom(vaccine) {
|
||||||
return fetch(`./data/ProportionalReportingRatios/vaccines/${vaccine}.json`).then(response => response.json());
|
return fetch(`./data/ProportionalReportingRatios/vaccines/${vaccine}`).then(response => response.json());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -5,14 +5,19 @@ from SymptomsCausedByVaccines.HtmlUtils import getSymptomOptions, getVaccineOpti
|
|||||||
from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter
|
from SymptomsCausedByVaccines.OptionsSetter import OptionsSetter
|
||||||
|
|
||||||
|
|
||||||
def updateHtmlFile(symptoms, vaccines, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'):
|
def updateHtmlFile(symptomsDescr, vaccinesDescr, htmlFile, defaultSelectVaccineOptionText = 'Select Vaccine'):
|
||||||
_saveOptions(
|
_saveOptions(
|
||||||
options = getSymptomOptions(symptoms),
|
options = getSymptomOptions(
|
||||||
|
symptoms = symptomsDescr['symptoms'],
|
||||||
|
filenameBySymptom = symptomsDescr['filenameBySymptom']),
|
||||||
htmlFile = htmlFile,
|
htmlFile = htmlFile,
|
||||||
selectElementId = 'symptomSelect')
|
selectElementId = 'symptomSelect')
|
||||||
|
|
||||||
_saveOptions(
|
_saveOptions(
|
||||||
options = getVaccineOptions(vaccines, defaultSelectVaccineOptionText),
|
options = getVaccineOptions(
|
||||||
|
vaccines = vaccinesDescr['vaccines'],
|
||||||
|
filenameByDrug = vaccinesDescr['filenameByDrug'],
|
||||||
|
defaultOptionText = defaultSelectVaccineOptionText),
|
||||||
htmlFile = htmlFile,
|
htmlFile = htmlFile,
|
||||||
selectElementId = 'vaccineSelect')
|
selectElementId = 'vaccineSelect')
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,28 @@
|
|||||||
import html
|
import html
|
||||||
|
|
||||||
def getVaccineOptions(vaccines, defaultOptionText):
|
def getVaccineOptions(vaccines, filenameByDrug, defaultOptionText):
|
||||||
return _getOptionsWithDefaultOption(defaultOptionText = defaultOptionText, values = vaccines)
|
return _getOptionsWithDefaultOption(
|
||||||
|
defaultOptionText = defaultOptionText,
|
||||||
|
values = vaccines,
|
||||||
|
filenameByValue = filenameByDrug)
|
||||||
|
|
||||||
|
|
||||||
def getSymptomOptions(symptoms):
|
def getSymptomOptions(symptoms, filenameBySymptom):
|
||||||
return _getOptionsWithDefaultOption(defaultOptionText = 'Select Symptom', values = symptoms)
|
return _getOptionsWithDefaultOption(
|
||||||
|
defaultOptionText = 'Select Symptom',
|
||||||
|
values = symptoms,
|
||||||
|
filenameByValue = filenameBySymptom)
|
||||||
|
|
||||||
|
|
||||||
def _getOptionsWithDefaultOption(defaultOptionText, values):
|
def _getOptionsWithDefaultOption(defaultOptionText, values, filenameByValue):
|
||||||
return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values)
|
return ['<option hidden disabled selected value>{defaultOptionText}</option>'.format(defaultOptionText = defaultOptionText)] + _getOptions(values, filenameByValue)
|
||||||
|
|
||||||
|
|
||||||
def _getOptions(values):
|
def _getOptions(values, filenameByValue):
|
||||||
return [_getOption(value) for value in values]
|
return [_getOption(filename = filenameByValue[value], displayValue = value) for value in values]
|
||||||
|
|
||||||
|
|
||||||
def _getOption(value):
|
def _getOption(filename, displayValue):
|
||||||
return '<option value="{value}">{value}</option>'.format(value = html.escape(value))
|
return '<option value="{value}">{displayValue}</option>'.format(
|
||||||
|
value = filename,
|
||||||
|
displayValue = html.escape(displayValue))
|
||||||
|
|||||||
@@ -10,4 +10,4 @@ def saveProportionalReportingRatios(prrBySymptomByDrug, directory):
|
|||||||
filename = f'{i}.json'
|
filename = f'{i}.json'
|
||||||
filenameByDrug[drug] = filename
|
filenameByDrug[drug] = filename
|
||||||
IOUtils.saveDictAsJson(prrBySymptom, f'{directory}/{filename}')
|
IOUtils.saveDictAsJson(prrBySymptom, f'{directory}/{filename}')
|
||||||
IOUtils.saveDictAsJson(filenameByDrug, f'{directory}/filenameByDrug.json')
|
return filenameByDrug
|
||||||
|
|||||||
@@ -18,16 +18,14 @@ class ProportionalReportingRatiosPersisterTest(unittest.TestCase):
|
|||||||
directory = 'src/tmp/vaccines'
|
directory = 'src/tmp/vaccines'
|
||||||
|
|
||||||
# When
|
# When
|
||||||
saveProportionalReportingRatios(prrBySymptomByDrug, directory)
|
filenameByDrug = saveProportionalReportingRatios(prrBySymptomByDrug, directory)
|
||||||
|
|
||||||
# Then
|
# Then
|
||||||
drugFilename = '1.json'
|
drugFilename = '1.json'
|
||||||
self.assertDictEqual(
|
self.assertDictEqual(
|
||||||
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/{drugFilename}'),
|
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/{drugFilename}'),
|
||||||
prrBySymptom)
|
prrBySymptom)
|
||||||
self.assertDictEqual(
|
self.assertDictEqual(filenameByDrug, { drug: drugFilename })
|
||||||
ProportionalReportingRatiosPersisterTest.readJsonFile(f'{directory}/filenameByDrug.json'),
|
|
||||||
{ drug: drugFilename })
|
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def readJsonFile(file):
|
def readJsonFile(file):
|
||||||
|
|||||||
Reference in New Issue
Block a user