@vidal-community/vidal-web-components
Version:
Vidal Web Components
596 lines (594 loc) • 34.9 kB
JavaScript
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var VidalSideEffect_1;
import { configureLocalization, localized, msg, updateWhenLocaleChanges, } from '@lit/localize';
import * as d3 from 'd3';
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { sourceLocale, targetLocales } from '../generated/locale-codes';
import * as localeDe from '../generated/locales/de';
import * as localeEn from '../generated/locales/en';
import * as localeEs from '../generated/locales/es';
import * as localeFr from '../generated/locales/fr';
import * as localePt from '../generated/locales/pt';
import { colorsByApparatus, defaultColor } from './data/colors-by-apparatus';
import frequencyWeight from './data/frequency-weight';
import './level-display-selector';
import { LevelDisplay } from './models/level-display';
import { SideEffect } from './models/side-effect';
import { vidalSideEffectStyles } from './vidal-side-effect-styles';
export const localizedTemplates = new Map([
['de', localeDe],
['en', localeEn],
['es', localeEs],
['fr', localeFr],
['pt', localePt],
]);
export const numberByLineOfApparatusCaptions = 5;
export const { getLocale, setLocale } = configureLocalization({
sourceLocale,
targetLocales,
// @ts-ignore
loadLocale: async (locale) => {
return localizedTemplates.get(locale);
},
});
let VidalSideEffect = VidalSideEffect_1 = class VidalSideEffect extends LitElement {
constructor() {
super();
this.drugIds = [];
this.sideEffectsSupplier = (_) => fetch(`/rest/side-effect/hierarchy?${this.drugIds
.map((vidalDrugId) => 'drugId=' + vidalDrugId)
.join('&')}`);
this.displayedFrequency = 'FREQUENT';
this.apparatus = [];
this.selectedLevel = LevelDisplay.APPARATUS;
this.colorsByApparatus = colorsByApparatus;
updateWhenLocaleChanges(this);
}
getHtmlElement(selector) {
return this.renderRoot.querySelector(selector);
}
displayTreeMap(sideEffects, displayedFrequencyString, levelDisplay = LevelDisplay.DRUG) {
var _a, _b, _c, _d, _e, _f;
this.displayedSideEffects = sideEffects;
const svgToRemove = (_b = (_a = d3
.selectAll(this.renderRoot.querySelectorAll('svg'))) === null || _a === void 0 ? void 0 : _a.style('transition', 'opacity, 0.5s')) === null || _b === void 0 ? void 0 : _b.style('opacity', '0.5');
setTimeout(() => {
svgToRemove === null || svgToRemove === void 0 ? void 0 : svgToRemove.remove();
d3.select(this.getHtmlElement('svg')).style('opacity', '1');
}, 250);
const tempSideEffect = JSON.parse(JSON.stringify(sideEffects));
tempSideEffect.children.forEach((child) => {
if (child.children &&
displayedFrequencyString !== null &&
displayedFrequencyString !== 'null') {
child.children = child.children.filter((child2) => child2.children.filter((x) => {
const drugFrequency = frequencyWeight.filter((f) => f.frequencyLabel === x.frequency);
const displayFrequency = frequencyWeight.filter((f) => f.frequencyLabel === displayedFrequencyString);
return drugFrequency[0].weight >= displayFrequency[0].weight;
}).length > 0);
}
});
tempSideEffect.children = tempSideEffect.children.filter((child) => child.children.length > 0);
(_c = this.getHtmlElement('.message-empty-container')) === null || _c === void 0 ? void 0 : _c.remove();
if (tempSideEffect.children.length === 0) {
const displayedFrequency = frequencyWeight.filter((f) => f.frequencyLabel === displayedFrequencyString)[0];
const frequencyFrenchLabels = frequencyWeight
.filter((freq) => freq.frequencyLabel && freq.weight >= displayedFrequency.weight)
.map((freq) => freq.displayLabel());
const message = msg("Il n'y a pas d'effets indésirables dont les fréquences sont : ") +
frequencyFrenchLabels.join(', ') +
'.';
const messageContainer = document.createElement('div');
messageContainer.classList.add('message-empty-container');
messageContainer.textContent = message;
(_d = this.getHtmlElement('#side-effect')) === null || _d === void 0 ? void 0 : _d.append(messageContainer);
return;
}
const data = tempSideEffect;
if (this.apparatus.length == 0) {
this.apparatus = tempSideEffect.children.map((child) => child.name);
}
const svgContainer = this.createSVGContainer();
const box = this.getHtmlElement('#side-effect svg');
const width = (_e = box === null || box === void 0 ? void 0 : box.clientWidth) !== null && _e !== void 0 ? _e : 0, height = (_f = box === null || box === void 0 ? void 0 : box.clientHeight) !== null && _f !== void 0 ? _f : 0;
const root = d3
.treemap()
.size([Number(width), Number(height)])
.paddingOuter(20)
.paddingInner(10)
.round(true)(d3
.hierarchy(data)
.sum((d) => {
var _a, _b;
if (d.children) {
return d.children
.map((child) => child.value)
.reduce((acc, current) => acc + current, 0);
}
return ((_b = (_a = frequencyWeight.filter((f) => {
return f.frequencyLabel === d.frequency;
})[0]) === null || _a === void 0 ? void 0 : _a.weight) !== null && _b !== void 0 ? _b : 0);
})
.sort((a, b) => {
if (b.value && a.value) {
return b.value - a.value;
}
return -1;
}));
const node = svgContainer
.selectAll('g')
// @ts-ignore
.data(d3.group(root, (d) => d.height))
.join('g')
.selectAll('g')
.data((d) => d[1])
.join('g')
.attr('transform', (d) => {
return `translate(${d.x0},${d.y0})`;
});
node
.filter((d) => d.depth <= levelDisplay.depth)
.append('title')
.text((d) => {
const correspondingFrequency = frequencyWeight.filter((fw) => fw.frequencyLabel === d.data.frequency)[0];
return `${d
.ancestors()
.reverse()
.map((d) => d.data.name)
.join('/')} ${d.depth === 3 && correspondingFrequency
? '\n\n' +
msg('Fréquence :') +
' ' +
correspondingFrequency.displayLabel()
: ''}`;
});
node
.filter((d) => d.depth <= levelDisplay.depth)
.append('rect')
.attr('fill', (d) => {
if (d.depth === 1) {
return this.getApparatusColor(d.data.name);
}
if (d.depth === 2) {
return this.colorShade(this.getApparatusColor(d.parent.data.name), 10);
}
if (d.depth === 3) {
return this.colorShade(this.getApparatusColor(d.parent.parent.data.name), 20);
}
return 'white';
})
.attr('width', (d) => d.x1 - d.x0)
.attr('height', (d) => d.y1 - d.y0)
.attr('rx', '8')
.attr('ry', '8');
node
.filter((d) => d.depth <= levelDisplay.depth)
.append('text')
.text(function (d) {
var _a, _b;
if (d.depth !== 3) {
return d.data.name;
}
return (_b = (_a = d.data.name) === null || _a === void 0 ? void 0 : _a.split(' ')[0]) !== null && _b !== void 0 ? _b : '';
})
.attr('font-size', '15px')
.attr('font-family', '"Roboto", sans-serif');
node.selectAll('text').attr('fill', (d) => {
if (d.depth === 1) {
return this.getContrastTextColor(this.getApparatusColor(d.data.name));
}
if (d.depth === 2) {
return this.getContrastTextColor(this.getApparatusColor(d.parent.data.name));
}
if (d.depth === 3) {
return this.getContrastTextColor(this.getApparatusColor(d.parent.parent.data.name));
}
return 'white';
});
node
.filter((d) => d.depth !== 3)
.selectAll('text')
.style('font-weight', 'bold')
.attr('font-size', '15px')
.attr('transform', (_) => {
return `translate(10,15)`;
});
node
.selectAll('text')
.filter((d) => d.depth === 3)
.attr('font-size', (_) => {
if (tempSideEffect.children.length === 1) {
return '25px';
}
return '15px';
});
node
.filter((d) => d.depth <= levelDisplay.depth)
.on('click', (_, d) => {
const depth = d.depth;
if (depth === 1) {
this.updateLevelSelect(LevelDisplay.SIDE_EFFECT);
this.switchApparatus(d.data.name);
}
if (depth === 2) {
this.updateLevelSelect(LevelDisplay.DRUG);
this.displayTreeMap(this.displayedSideEffects, this.displayedFrequency, this.selectedLevel);
}
});
node
.filter((d) => d.depth <= levelDisplay.depth)
.filter((d) => d.depth !== 0)
.style('cursor', 'pointer');
const _wrap = this.wrap;
node.selectAll('text').each(function (d) {
_wrap(this,
// @ts-ignore
d3.select(this.parentNode).select('rect').node().attributes.width
.value, levelDisplay,
// @ts-ignore
d.depth);
});
node
.filter((d) => d.depth === levelDisplay.depth)
.selectAll('text')
.attr('transform', function (d) {
// @ts-ignore
const textWidth = this.getBBox().width;
return `translate(${(d.x1 - d.x0) / 2 - textWidth / 2}, ${Math.max(0, (d.y1 - d.y0) / 2)})`;
});
}
updateCaption(sideEffects, displayedFrequencyString) {
const sideEffectCaptions = JSON.parse(JSON.stringify(sideEffects));
sideEffectCaptions.children.forEach((child) => {
if (child.children &&
displayedFrequencyString !== null &&
displayedFrequencyString !== 'null') {
child.children = child.children.filter((child2) => child2.children.filter((x) => {
const drugFrequency = frequencyWeight.filter((f) => f.frequencyLabel === x.frequency);
const displayFrequency = frequencyWeight.filter((f) => f.frequencyLabel === displayedFrequencyString);
return drugFrequency[0].weight >= displayFrequency[0].weight;
}).length > 0);
}
});
sideEffectCaptions.children = sideEffectCaptions.children.filter((child) => child.children.length > 0);
const captionElement = this.getHtmlElement('.captions');
captionElement.innerHTML = '';
let captionLine = document.createElement('div');
sideEffectCaptions.children
.map((caption) => caption.name)
.forEach((name) => {
if (!this.colorsByApparatus
.map((color) => color.apparatus.toUpperCase())
.includes(name.toUpperCase())) {
this.colorsByApparatus.push({
apparatus: name,
color: defaultColor,
});
}
});
this.colorsByApparatus
.filter((colorApparatusTuple) => {
var _a;
return (_a = sideEffectCaptions === null || sideEffectCaptions === void 0 ? void 0 : sideEffectCaptions.children) === null || _a === void 0 ? void 0 : _a.map((child) => child.name.toUpperCase()).includes(colorApparatusTuple.apparatus.toUpperCase());
})
.filter((value, index, self) => self
.map((x) => x.apparatus.toUpperCase())
.indexOf(value.apparatus.toUpperCase()) === index)
.forEach((colorAppartusTuple, index) => {
const captionItem = document.createElement('div');
captionItem.classList.add('caption-item');
const colorElement = document.createElement('div');
colorElement.classList.add('color-element');
colorElement.style.background = colorAppartusTuple.color;
colorElement.innerHTML = '+';
const labelElement = document.createElement('span');
const apparatus = colorAppartusTuple.apparatus;
labelElement.innerHTML = apparatus;
labelElement.style.cursor = 'pointer';
captionItem.append(colorElement, labelElement);
captionItem.addEventListener('click', () => {
this.selectedLevel = LevelDisplay.SIDE_EFFECT;
this.switchApparatus(apparatus);
});
if (index % numberByLineOfApparatusCaptions === 0) {
captionLine = document.createElement('div');
captionLine.classList.add('caption-line');
captionElement.append(captionLine);
}
captionLine.append(captionItem);
});
}
createSVGContainer() {
var _a, _b;
const container = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.getElementById('side-effect');
if (!container) {
throw new Error('Cannot create SVG container because element with ID "side-effect" does not exist!');
}
return (_b = d3
.select(container)
.append('svg')
.attr('width', '100%')
.attr('height', '90%')) === null || _b === void 0 ? void 0 : _b.style('transition', 'opacity, 0.5s').style('opacity', '0.5').append('g');
}
getContrastTextColor(hexcolor) {
hexcolor = hexcolor.replace('#', '');
const r = parseInt(hexcolor.substr(0, 2), 16);
const g = parseInt(hexcolor.substr(2, 2), 16);
const b = parseInt(hexcolor.substr(4, 2), 16);
const textColor = (r * 299 + g * 587 + b * 114) / 1000;
return textColor >= 160 ? 'black' : 'white';
}
getApparatusColor(name) {
var _a, _b;
return ((_b = (_a = this.colorsByApparatus.filter((c) => c.apparatus.toUpperCase() === name.toUpperCase())[0]) === null || _a === void 0 ? void 0 : _a.color) !== null && _b !== void 0 ? _b : defaultColor);
}
colorShade(col, amt) {
col = col.replace(/^#/, '');
if (col.length === 3) {
col = col[0] + col[0] + col[1] + col[1] + col[2] + col[2];
}
let [r, g, b] = col.match(/.{2}/g);
[r, g, b] = [
parseInt(r, 16) + amt,
parseInt(g, 16) + amt,
parseInt(b, 16) + amt,
];
r = Math.max(Math.min(255, r), 0).toString(16);
g = Math.max(Math.min(255, g), 0).toString(16);
b = Math.max(Math.min(255, b), 0).toString(16);
const rr = (r.length < 2 ? '0' : '') + r;
const gg = (g.length < 2 ? '0' : '') + g;
const bb = (b.length < 2 ? '0' : '') + b;
return `#${rr}${gg}${bb}`;
}
displayedFrequencyLabel(frequency) {
var _a;
return (_a = frequency.frequencyLabel) !== null && _a !== void 0 ? _a : 'Tout';
}
switchApparatus(apparatus) {
var _a, _b, _c;
const filter = new SideEffect([
// @ts-ignore
(_b = (_a = this.sideEffects) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b.filter((x) => x.name.toUpperCase() === apparatus.toUpperCase())[0],
]);
this.displayTreeMap(filter, this.displayedFrequency, this.selectedLevel);
this.updateLevelSelect((_c = this.selectedLevel) !== null && _c !== void 0 ? _c : LevelDisplay.SIDE_EFFECT);
}
reset() {
this.updateLevelSelect(LevelDisplay.APPARATUS);
this.displayTreeMap(this.sideEffects, this.displayedFrequency, this.selectedLevel);
}
changeDisplayFrequency() {
this.updateFrequencyRange(this.getHtmlElement('.frequency-select').value);
this.displayTreeMap(this.displayedSideEffects, this.displayedFrequency, this.selectedLevel);
this.updateCaption(this.sideEffects, this.displayedFrequency);
}
changeDisplayLevel(levelDisplay) {
this.selectedLevel = levelDisplay;
this.displayTreeMap(this.displayedSideEffects, this.displayedFrequency, this.selectedLevel);
}
updateFrequencyRange(frequencyIndex) {
this.displayedFrequency = [...frequencyWeight]
.filter((x) => x.frequencyLabel !== null)
.sort((x) => x.weight)
.reverse()[frequencyIndex].frequencyLabel;
this.getHtmlElement('.frequency-select').value =
frequencyIndex;
this.getHtmlElement('.bubble').style.opacity = '1';
setTimeout(() => {
this.getHtmlElement('.bubble').style.opacity = '0';
this.getHtmlElement('.bubble').style.removeProperty('opacity');
}, 1000);
}
updateLevelSelect(selectedLevel) {
this.selectedLevel = selectedLevel;
this.renderRoot.querySelector('level-display-selector').selectedLevelDisplay = this.selectedLevel;
}
wrap(text, width, levelDisplay, textDepth) {
var _a;
const el = d3.select(text);
const words = el
.text()
.split(/[\s-]+/)
.reverse();
let line = [];
let lineNumber = 0;
const lineHeight = 1; // ems
const xAttr = el.attr('x');
const yAttr = el.attr('y');
let tspan = el
.text(null)
.append('tspan')
.attr('x', xAttr)
.attr('y', yAttr)
.attr('dy', '0em');
let word = words.pop();
while (word) {
if (word) {
line.push(word);
tspan.text(line.join(' '));
const tSpanNodeTextLength = (_a = tspan === null || tspan === void 0 ? void 0 : tspan.node()) === null || _a === void 0 ? void 0 : _a.getComputedTextLength();
if (tSpanNodeTextLength && tSpanNodeTextLength > width) {
if (lineNumber < 0 && textDepth === levelDisplay.depth) {
line.pop();
tspan.text(line.join(' ')).attr('y', Number(yAttr));
line = [word];
tspan = el
.append('tspan')
.attr('x', 0)
.attr('y', Number(yAttr))
.attr('dy', ++lineNumber * lineHeight + 'em')
.text(word);
}
else {
line.pop();
tspan
.text(line.join(' '))
.attr('x', 0)
.attr('y', Number(yAttr) - 4);
line = [word];
tspan = el
.append('tspan')
.attr('x', 0)
.attr('y', Number(yAttr) - 4)
.attr('dy', ++lineNumber + 'em')
.text(' ...');
break;
}
}
word = words.pop();
}
}
}
fetchData() {
if (this.sideEffectsSupplier) {
this.sideEffectsSupplier('/rest/api/version')
.then((response) => response.text())
.then((versionFeed) => {
var _a;
const domParser = new DOMParser();
const dom = domParser.parseFromString(versionFeed, 'text/xml');
const entry = dom.querySelector('feed > entry');
const locale = (_a = entry === null || entry === void 0 ? void 0 : entry.getElementsByTagName('vidal:productLine')[0]) === null || _a === void 0 ? void 0 : _a.getAttribute('locale');
if (locale && this.locale !== locale) {
this.locale = locale;
try {
const langage = locale.split('_')[0];
setLocale(langage).then(() => {
console.log(`langage ${langage} changed for locale ${locale}`);
this.requestUpdate();
});
}
catch (_error) {
console.error(`Locale ${this.locale} isn't handled by this application`);
}
}
});
}
if (this.drugIds.length > 0) {
const url = `/rest/side-effect/hierarchy?${this.drugIds
.map((vidalDrugId) => 'drugId=' + vidalDrugId)
.join('&')}`;
this.sideEffectsSupplier(url)
.then((resp) => resp.json())
.then((json) => {
this.sideEffects = { children: json };
this.selectedLevel = LevelDisplay.APPARATUS;
this.displayTreeMap(this.sideEffects, VidalSideEffect_1.DEFAULT_FREQUENCY.frequencyLabel, this.selectedLevel);
this.updateCaption(this.displayedSideEffects, this.displayedFrequency);
});
}
}
updated() {
this.fetchData();
const bubble = this.getHtmlElement('.bubble');
const range = this.getHtmlElement('#frequency-selector');
this.updateBubble(range, bubble);
range === null || range === void 0 ? void 0 : range.addEventListener('input', () => {
this.updateBubble(range, bubble);
});
}
updateBubble(range, bubble) {
const val = range.value;
const min = range.min ? range.min : 0;
const max = range.max ? range.max : 7;
const newVal = Number(((val - min) * 100) / (max - min));
bubble.innerHTML = [...frequencyWeight]
.filter((x) => x.frequencyLabel !== null)
.sort((x) => x.weight)
.reverse()[val].displayLabel();
bubble.style.left = `calc(${newVal}%)`;
}
render() {
const frequencyOptionHtmlTemplateResult = (weight, index) => {
var _a;
return html ` <option
value="${index}"
label="${(_a = weight === null || weight === void 0 ? void 0 : weight.frequencyLabel) !== null && _a !== void 0 ? _a : ''}"
></option>`;
};
return html `
<link
href="//fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap"
rel="stylesheet"
/>
<header class="header">
<img
class="logo-image"
src="${VidalSideEffect_1.logoVidal}"
alt="Vidal Side Effect"
/>
<div class="title">${msg('EFFETS INDÉSIRABLES')}</div>
</header>
<div id="side-effect">
<div class="menu">
<div
class="range-container-wrapper"
title="${msg('Choisir la fréquence.')}"
>
<span> ${msg('Très fréquent')} </span>
<div class="range-container">
<input
id="frequency-selector"
class="frequency-select"
type="range"
min="0"
max="4"
list="frequencyMarks"
value="${VidalSideEffect_1.DEFAULT_FREQUENCY.frequencyRangeIndex}"
@change="${this.changeDisplayFrequency}"
/>
<output class="bubble"></output>
</div>
<span> ${msg('Très rare')} </span>
</div>
<datalist id="frequencyMarks">
${[...frequencyWeight]
.filter((x) => x.frequencyLabel !== null &&
x.frequencyLabel !== 'ISOLATED_CASES' &&
x.frequencyLabel !== 'EXECPTIONAL')
.sort((x) => x.weight)
.reverse()
.map(frequencyOptionHtmlTemplateResult)}
</datalist>
<level-display-selector
title="${msg("Niveau d'affichage courant.")}"
.reset="${() => this.reset()}"
.valueChangeEvent="${(levelDisplay) => this.changeDisplayLevel(levelDisplay)}"
></level-display-selector>
<div class="meta-data">
<span>${msg('Source : RCP')}</span>
</div>
</div>
</div>
<div class="captions"></div>
`;
}
};
VidalSideEffect.logoVidal = 'data:image/png;base64,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';
VidalSideEffect.styles = vidalSideEffectStyles(numberByLineOfApparatusCaptions);
VidalSideEffect.DEFAULT_FREQUENCY = {
frequencyRangeIndex: '1',
frequencyLabel: 'FREQUENT',
};
__decorate([
property({ type: Array })
], VidalSideEffect.prototype, "drugIds", void 0);
__decorate([
property({ attribute: false })
], VidalSideEffect.prototype, "locale", void 0);
__decorate([
property({ attribute: false })
], VidalSideEffect.prototype, "sideEffectsSupplier", void 0);
VidalSideEffect = VidalSideEffect_1 = __decorate([
localized(),
customElement('vidal-side-effect')
], VidalSideEffect);
export { VidalSideEffect };
//# sourceMappingURL=vidal-side-effect.js.map