33 lines
1.2 KiB
JavaScript
33 lines
1.2 KiB
JavaScript
class PageInitializer {
|
|
|
|
static initializePage({ pathologySelectElement, drugsChartViewElement, urlSearchParam }) {
|
|
PageInitializer.#configurePathologySelect(
|
|
{
|
|
pathologySelectElement: pathologySelectElement,
|
|
drugsChartView: new DrugsChartView(drugsChartViewElement),
|
|
urlSearchParam: urlSearchParam
|
|
});
|
|
}
|
|
|
|
static #configurePathologySelect({ pathologySelectElement, drugsChartView, urlSearchParam }) {
|
|
Select2.initializeSelectElement(
|
|
{
|
|
selectElement: pathologySelectElement,
|
|
minimumInputLength: 0,
|
|
textOfOption2Select: urlSearchParam.get(),
|
|
onSelectOptionHavingValueAndText: (id, text) => {
|
|
PageInitializer
|
|
.#loadDrugDescr(id)
|
|
.then(drugDescr => {
|
|
drugsChartView.displayChart(drugDescr);
|
|
urlSearchParam.set(text);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
static #loadDrugDescr(id) {
|
|
return fetch(`data/DrugDescriptionsForPathologies/${id}.json`).then(response => response.json());
|
|
}
|
|
}
|