UNPKG

@vidal-community/vidal-web-components

Version:

Vidal Web Components

588 lines (587 loc) 41.1 kB
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 VidalHistoryTtt_1; import { html, LitElement } from 'lit'; import { customElement, property } from 'lit/decorators.js'; import * as vis from 'vis-timeline/standalone'; import './timeline-scale-selector'; import { Drug, DrugType } from './model/drug'; import { parseAtcClassification, findMostRecentOffMarketDate, parsePrescribableName, parseSearchResult, parseVidalClassification, } from './karadoc/karadoc'; import { FullMedicationDispense } from './model/full-medication-dispense'; import { buildTimelineData } from './timeline/build'; import { Patient } from './model/patient'; import './vidal-history-order-and-group'; import './timeline-drug-display-mode-selector'; import { styles } from './vidal-history-ttt.styles'; import { Gender } from './model/gender'; import { Point } from './timeline/point'; import { addMonths, format, isBefore } from 'date-fns'; var Direction; (function (Direction) { Direction["PREVIOUS"] = "previous"; Direction["NEXT"] = "next"; })(Direction || (Direction = {})); let VidalHistoryTtt = VidalHistoryTtt_1 = class VidalHistoryTtt extends LitElement { constructor() { super(...arguments); this._medicationDispenses = []; this._grouping = 'molecule'; this._errors = []; this._dataErrors = []; this.fullMedicationDispenses = []; this.classifiedBy = 'ATC'; this.prescriptionItems = []; this.zoomAndScale = { zoom: 'year', scale: { label: 'month', step: 1 }, }; } set medicationDispenses(value) { this._medicationDispenses = value; this._dataErrors = []; this._medicationDispenses.forEach((medicationDispense) => { medicationDispense.dispensations.forEach((dispensation) => { if (Number.isNaN(Date.parse(dispensation.startDate))) { this._dataErrors.push(`La date indiquée (${dispensation.startDate}) pour le médicament ${medicationDispense.medicationCode} a un format incorrect`); } }); }); } get medicationDispenses() { return this._medicationDispenses; } get grouping() { return this._grouping; } set grouping(grouping) { this._grouping = grouping; this.drawTimeline(this.fullMedicationDispenses); } get patient() { return this._patient; } set patient(patient) { var _a, _b; this._patient = new Patient(Gender[(_b = (_a = patient === null || patient === void 0 ? void 0 : patient.sex) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : ''], patient === null || patient === void 0 ? void 0 : patient.dateOfBirth, () => Date.now()); } get dataErrors() { return this._dataErrors; } get errors() { return this._errors; } getHtmlElement(selector) { return this.renderRoot.querySelector(selector); } render() { var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k; console.debug('Patient profile', this.patient); console.debug('Input medication dispenses', this.medicationDispenses); window.onresize = () => { var _a; (_a = this.timeline) === null || _a === void 0 ? void 0 : _a.setOptions({ maxHeight: this.getHtmlElement('.timeline-container').clientHeight, }); }; (_a = this.timeline) === null || _a === void 0 ? void 0 : _a.destroy(); let genderIcon = ''; if (((_b = this.patient) === null || _b === void 0 ? void 0 : _b.sex) === Gender.MALE) { genderIcon = VidalHistoryTtt_1.maleIcon; } if (((_c = this.patient) === null || _c === void 0 ? void 0 : _c.sex) === Gender.FEMALE) { genderIcon = VidalHistoryTtt_1.femaleIcon; } const age = ((_d = this.patient) === null || _d === void 0 ? void 0 : _d.age) ? `(${this.patient.age} ans)` : ''; return html ` <link href="https://unpkg.com/vis-timeline@latest/styles/vis-timeline-graph2d.min.css" rel="stylesheet" type="text/css" /> <div class="vidal-header"> <span> <img height="40px" src="${VidalHistoryTtt_1.logoVidal}" alt="Logo Vidal" /> </span> <span> Historique des traitements</span> <span class="patient"> <span>${(_f = (_e = this.patient) === null || _e === void 0 ? void 0 : _e.dateOfBirth) === null || _f === void 0 ? void 0 : _f.toLocaleDateString()}</span> <span>${age}</span> <span class="gender-logo"> <img height="30px" src="${genderIcon}" alt="${(_h = (_g = this.patient) === null || _g === void 0 ? void 0 : _g.sex) !== null && _h !== void 0 ? _h : ''}" /> </span> </span> </div> <div class="sub-header first"> <timeline-scale-selector .valueChangeEvent="${(value) => this.changeScale(value)}" ></timeline-scale-selector> <div class="todayButtonWrapper"> <button title="Définir la date de fin à aujourd'hui" class="todayButton" @click="${() => this.selectToday()}" > <span>Aujourd'hui</span> </button> </div> <div class="meta-data"> <span >Appel du ${new Date().toLocaleString()}<img class="warning-icon" src="${VidalHistoryTtt_1.warningIcon}" alt="Warning" /></span> <span>Source : ${(_j = this.dataSource) !== null && _j !== void 0 ? _j : 'non précisée'}</span> <span >${this.dataDate ? html `Données du <span class="data-date-value" >${(_k = this.dataDate) === null || _k === void 0 ? void 0 : _k.toLocaleDateString()}</span >` : ''}</span > </div> </div> <div class="sub-header last"> <vidal-history-order-and-group .switchHandler="${(classification) => this.reclassify(classification)}" ></vidal-history-order-and-group> <div class="regroupment-container"> <span class="regroupment-label"> Regroupement </span> <div class="order-by-arrow"></div> <timeline-drug-display-mode-selector .onClickHandler="${this.onTimeLineGroupingClickHandler()}" .grouping="${this.grouping}" ></timeline-drug-display-mode-selector> </div> </div> <div class="available-soon hidden-div">Bientôt disponible</div> <div class="timeline-container"></div> `; } selectToday() { this.startRange = this.computeStartDate(); this.endRange = new Date(); this.changeScale(this.zoomAndScale); } /** * Change display of the timeline according to selected timeline scale */ changeScale(value) { var _a, _b; this.currentDate = this.startRange ? new Date(this.startRange.getTime()) : new Date(); this.zoomAndScale = value; const currentDateTime = this.currentDate.getTime(); const end = addMonths(currentDateTime, this.getDurationInMonths()).getTime(); this.startRange = new Date(currentDateTime); this.endRange = new Date(end); this.zoomAndScale = value; (_a = this.timeline) === null || _a === void 0 ? void 0 : _a.setOptions({ start: this.startRange.getTime(), end: end, timeAxis: { scale: value.scale.label, step: value.scale.step }, }); (_b = this.timeline) === null || _b === void 0 ? void 0 : _b.redraw(); } updated() { console.time('FullMedicationDispenses fetch'); this.medicationDispenses.forEach((medicationDispense) => { if (!medicationDispense.medicationCode.trim()) { this._errors.push('Attention, des médicaments sans code ont été ignorés.'); } else if (medicationDispense.dispensations.length === 0) { this._errors.push(`Attention, il n'y a pas de date pour le médicament ${medicationDispense.medicationCode}`); } }); this.fullMedicationDispenses = []; Promise.all(this.getFullMedicationDispensesPromises()) .then(() => { if (this.fullMedicationDispenses) { this.drawTimeline(this.fullMedicationDispenses); } }) .catch((error) => { this._errors.push('Erreur technique'); console.error(error); }) .finally(() => { if (this._errors.length > 0 || this._dataErrors.length > 0) { const warningIcon = this.getHtmlElement('.warning-icon'); warningIcon.style.opacity = '1'; let errorsTooltip = ''; this._errors.forEach((error) => { errorsTooltip += `${error}\n`; }); this._dataErrors.forEach((error) => { errorsTooltip += `${error}\n`; }); warningIcon.setAttribute('title', errorsTooltip); } const metaData = this.getHtmlElement('.meta-data'); metaData.style.opacity = '1'; console.timeEnd('FullMedicationDispenses fetch'); this.hydrateFullMedicationDispensesWithVidalClassifications(); this.hydrateFullMedicationDispensesWithPrescribableNames(); }); } /** * Retrieve ATC classifications xml data from API, parse it and put it into an instance of Classifications */ async fetchAtcClassifications(drug) { var _a; const drugId = drug.id; let url; if (drug.type === DrugType.PACK) { url = `/rest/api/package/${drugId}?aggregate=ATC_CLASSIFICATION`; } else if (drug.type === DrugType.UCD) { url = `/rest/api/ucd/${drugId}?aggregate=ATC_CLASSIFICATION`; } // @ts-ignore return (_a = this.dataFetchingSupplier) === null || _a === void 0 ? void 0 : _a.call(this, url).then(async (response) => { if (response.status === 200) { return parseAtcClassification(await response.text()); } else if (response.status === 204) { this._errors.push(`Médicament ${drugId} de type ${drug.type} introuvable`); } else { this._errors.push(`Erreur technique lors de la récupération de la présentation ${drugId}`); } return true; }).catch((_error) => { this._errors.push(`Erreur technique lors de la récupération de la présentation ${drugId}`); }).finally(() => Promise.resolve()); } /** * Retrieve vidal classifications xml data from API, parse it and put it into an instance of Classifications */ async fetchVidalClassifications(drug) { var _a; const productId = drug.productId; const url = `/rest/api/product/${productId}/vidal-classification`; // @ts-ignore return (_a = this.dataFetchingSupplier) === null || _a === void 0 ? void 0 : _a.call(this, url).then(async (response) => { if (response.status === 200) { return parseVidalClassification(await response.text()); } else if (response.status === 204) { this._errors.push(`Classe Vidal introuvable pour la spécialité ${productId}`); } else { this._errors.push(`Erreur technique lors de la récupération de la classe Vidal pour la spécialité ${productId}`); } return true; }).catch((_error) => { this._errors.push(`Erreur technique lors de la récupération de la classe Vidal pour la spécialité ${productId}`); }).finally(() => Promise.resolve()); } /** * For a given drug, get data from api */ async fetchDrugByCode(drugCode) { var _a; // @ts-ignore return (_a = this.dataFetchingSupplier) === null || _a === void 0 ? void 0 : _a.call(this, `/rest/api/search?code=${drugCode}`).then(async (response) => { if (response.status === 200) { return parseSearchResult(await response.text()); } else if (response.status === 204) { this._errors.push(`Médicament de code ${drugCode} introuvable`); } else { this._errors.push(`Erreur technique lors de la récupération du médicament de code ${drugCode}`); } return true; }).catch((_error) => { this._errors.push(`Erreur technique lors de la récupération du médicament de code ${drugCode}`); }).finally(() => Promise.resolve()); } async fetchUcdPackageMostRecentOffMarketDate(ucdId) { var _a; // @ts-ignore return (_a = this.dataFetchingSupplier) === null || _a === void 0 ? void 0 : _a.call(this, `/rest/api/ucd/${ucdId}/packages`).then(async (response) => { if (response.status === 200) { return findMostRecentOffMarketDate(await response.text()); } else if (response.status === 204) { this._errors.push(`Présentation de l'UCD ${ucdId} introuvable`); } else { this._errors.push(`Erreur technique lors de la récupération de l'UCD ${ucdId}`); } return; }).catch((_error) => { this._errors.push(`Erreur technique lors de la récupération de la présentation du l'UCD ${ucdId}`); }).finally(() => Promise.resolve()); } /** * * Get prescribable name of one VMP from API */ async fetchPrescribableNameForVmp(vmpId) { var _a; // @ts-ignore return (_a = this.dataFetchingSupplier) === null || _a === void 0 ? void 0 : _a.call(this, `/rest/api/vmp/${vmpId}/prescribables`).then(async (response) => { if (response.status === 200) { return parsePrescribableName(await response.text()); } else if (response.status === 204) { this._errors.push(`Prescriptible introuvable pour le VMP ${vmpId}`); } else { this._errors.push(`Erreur technique lors de la récupération du nom de prescriptible pour le VMP ${vmpId}`); } return true; }).catch((_error) => { this._errors.push(`Erreur technique lors de la récupération du nom de prescriptible pour le VMP ${vmpId}`); }).finally(() => Promise.resolve()); } drawTimeline(fullMedicationDispenses) { var _a, _b; console.debug('Medication dispenses enriched via Vidal API ↩', fullMedicationDispenses); this.toggleTimeline(); const [rootClasses, leafClasses, prescriptionItems] = buildTimelineData(fullMedicationDispenses, this.classifiedBy, this.grouping); this.prescriptionItems = prescriptionItems; const container = this.getHtmlElement('.timeline-container'); container.innerHTML = ''; const startDate = this.computeStartDate(); const options = { stack: false, zoomable: false, verticalScroll: true, maxHeight: this.getHtmlElement('.timeline-container').clientHeight, start: (_a = this.startRange) !== null && _a !== void 0 ? _a : startDate, end: (_b = this.endRange) !== null && _b !== void 0 ? _b : Date.now(), timeAxis: { scale: this.zoomAndScale.scale.label, step: this.zoomAndScale.scale.step, }, orientation: 'top', groupHeightMode: 'fixed', }; const groups = new vis.DataSet(); groups.add(rootClasses); groups.add(leafClasses); console.debug('Preparing timeline data... ⏳', rootClasses, leafClasses, prescriptionItems); if (this.medicationDispenses.length > 0) { this.timeline = new vis.Timeline(container, prescriptionItems, // @ts-ignore groups, options); } this.timeline.on('changed', () => { var _a, _b; (_b = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.vis-label.autre')) === null || _b === void 0 ? void 0 : _b.setAttribute('title', 'Les médicaments appartenant à plusieurs classes ATC sont regroupés dans la catégorie AUTRE.'); const timeAxis = this.getHtmlElement('.vis-time-axis.vis-foreground'); if (!this.renderRoot.querySelector('.arrowWrapper')) { timeAxis.prepend(this.createArrowForTimeNavigation(Direction.PREVIOUS)); timeAxis.append(this.createArrowForTimeNavigation(Direction.NEXT)); } this.getHtmlElement('.timeline-container').style.opacity = '1'; }); this.renderRoot .querySelectorAll('.vis-inner span') .forEach((element) => element.setAttribute('title', this.grouping === 'VMP' ? 'Aucun VMP trouvé pour ce médicament' : 'Aucun prescriptible trouvé pour ce médicament')); this.timeline.on('click', (props) => { props.event.preventDefault(); this.setRangeFromTimeline(); }); this.timeline.on('contextmenu', (props) => { props.event.preventDefault(); this.getDrugsForDate(new Date(props.time)); }); } computeStartDate() { const date = new Date(); date.setMonth(date.getMonth() - this.getDurationInMonths()); return date; } setRangeFromTimeline() { this.startRange = new Date(this.timeline.range.start); this.endRange = new Date(this.timeline.range.end); } getDrugsForDate(date) { const drugsIds = this.prescriptionItems .filter((item) => item instanceof Point && isBefore(new Date(item.start), date)) .map((prescription) => prescription.drugId) .filter((value, index, self) => { return self.indexOf(value) === index; }); const dateWithDrugs = { date: format(date, 'yyyy-MM-dd'), drugs: drugsIds, }; if (this.drugsForDateEvent) { this.drugsForDateEvent(dateWithDrugs); } } onTimeLineGroupingClickHandler() { return (event) => { const element = event.target; const id = element.getAttribute('id'); this.grouping = id; }; } createArrowForTimeNavigation(direction) { const arrowWrapper = document.createElement('div'); arrowWrapper.classList.add('arrowWrapper', direction); arrowWrapper.setAttribute('title', direction === Direction.PREVIOUS ? 'Remonter dans le temps' : 'Avancer dans le temps'); const arrow = document.createElement('div'); arrowWrapper.addEventListener('click', () => { var _a, _b; const durationInMonths = this.getDurationInMonths(); this.currentDate = (_b = (_a = this.startRange) !== null && _a !== void 0 ? _a : this.currentDate) !== null && _b !== void 0 ? _b : new Date(); if (direction === Direction.PREVIOUS) { const previousMonth = this.currentDate.getMonth() - durationInMonths; this.currentDate.setMonth(previousMonth); } else if (direction === Direction.NEXT) { const nextMonth = this.currentDate.getMonth() + durationInMonths; this.currentDate.setMonth(nextMonth); } this.timeline.moveTo(this.currentDate, () => this.setRangeFromTimeline()); }); arrow.classList.add('arrow', direction); arrowWrapper.appendChild(arrow); return arrowWrapper; } getDurationInMonths() { let durationInMonths; if (this.zoomAndScale.zoom === 'month') { durationInMonths = 1; } else if (this.zoomAndScale.zoom === 'semester') { durationInMonths = 6; } else if (this.zoomAndScale.zoom === 'year') { durationInMonths = 12; } return durationInMonths; } getFullMedicationDispensesPromises() { const promises = []; this.medicationDispenses .flatMap((medicationDispense) => medicationDispense.medicationCode) .forEach((code) => { promises.push(this.hydrateFullMedicationDispense(code)); }); return promises; } /** * For each drug, get drug, and ATC classifications data * from API and put it into a FullMedicationDispense array * * For offMarket UCD drug type fetch its packages * and hydrate drug offMarketDate with the most recent offMarketDate packages */ async hydrateFullMedicationDispense(medicationCode) { const drug = await this.fetchDrugByCode(medicationCode.toString()); if (drug === null || drug === void 0 ? void 0 : drug.id) { const atcClassifications = await this.fetchAtcClassifications(drug); if (drug.isOffMarKetUcd()) { drug.offMarketDate = await this.fetchUcdPackageMostRecentOffMarketDate(drug.id); } const dispensations = this.medicationDispenses .filter((medicationDispense) => medicationDispense.medicationCode === drug.cip13.toString() || medicationDispense.medicationCode === drug.cip.toString() || medicationDispense.medicationCode === drug.ucd || medicationDispense.medicationCode === drug.ucd13.toString()) .flatMap((medicationDispense) => medicationDispense.dispensations); if (atcClassifications) { this.fullMedicationDispenses.push(new FullMedicationDispense(new Drug(drug.id, drug.cip13, drug.cip, drug.name, drug.ucd, drug.ucd13, drug.type, drug.vmpName, drug.marketStatus, drug.vmpId, drug.offMarketDate, drug.productId, undefined), atcClassifications, dispensations)); } } } /** * For each drug, get Vidal classifications data * from API and put it into a FullMedicationDispense array */ hydrateFullMedicationDispensesWithVidalClassifications() { this.fullMedicationDispenses.forEach((medicationDispense) => this.fetchVidalClassifications(medicationDispense.drug).then((vidalClassification) => (medicationDispense.vidalClassifications = vidalClassification))); } /** * For each drug, get his prescribable name * from API and put it into a FullMedicationDispense array */ hydrateFullMedicationDispensesWithPrescribableNames() { this.fullMedicationDispenses.forEach((medicationDispense) => { var _a; if ((_a = medicationDispense.drug) === null || _a === void 0 ? void 0 : _a.vmpId) { this.fetchPrescribableNameForVmp(medicationDispense.drug.vmpId).then((prescribableName) => (medicationDispense.drug.prescribableName = prescribableName)); } }); } reclassify(classification) { this.classifiedBy = classification; this.drawTimeline(this.fullMedicationDispenses); } toggleTimeline() { if (this.grouping === 'prescribable') { this.hideDiv('timeline-container'); this.showDiv('available-soon'); } else { this.showDiv('timeline-container'); this.hideDiv('available-soon'); } } hideDiv(className) { var _a; const element = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.' + className); element.classList.add('hidden-div'); } showDiv(className) { var _a; const element = (_a = this.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.' + className); element.classList.remove('hidden-div'); } }; VidalHistoryTtt.logoVidal = 'data:image/png;base64,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'; VidalHistoryTtt.maleIcon = 'data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJtYXJzIiBjbGFzcz0ic3ZnLWlubGluZS0tZmEgZmEtbWFycyBmYS13LTEyIiByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM4NCA1MTIiPjxwYXRoIGZpbGw9ImN1cnJlbnRDb2xvciIgZD0iTTM3MiA2NGgtNzljLTEwLjcgMC0xNiAxMi45LTguNSAyMC41bDE2LjkgMTYuOS04MC43IDgwLjdjLTIyLjItMTQtNDguNS0yMi4xLTc2LjctMjIuMUM2NC41IDE2MCAwIDIyNC41IDAgMzA0czY0LjUgMTQ0IDE0NCAxNDQgMTQ0LTY0LjUgMTQ0LTE0NGMwLTI4LjItOC4xLTU0LjUtMjIuMS03Ni43bDgwLjctODAuNyAxNi45IDE2LjljNy42IDcuNiAyMC41IDIuMiAyMC41LTguNVY3NmMwLTYuNi01LjQtMTItMTItMTJ6TTE0NCAzODRjLTQ0LjEgMC04MC0zNS45LTgwLTgwczM1LjktODAgODAtODAgODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgweiI+PC9wYXRoPjwvc3ZnPg=='; VidalHistoryTtt.femaleIcon = 'data:image/svg+xml;base64,PHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgZm9jdXNhYmxlPSJmYWxzZSIgZGF0YS1wcmVmaXg9ImZhcyIgZGF0YS1pY29uPSJ2ZW51cyIgY2xhc3M9InN2Zy1pbmxpbmUtLWZhIGZhLXZlbnVzIGZhLXctOSIgcm9sZT0iaW1nIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyODggNTEyIj48cGF0aCBmaWxsPSJjdXJyZW50Q29sb3IiIGQ9Ik0yODggMTc2YzAtNzkuNS02NC41LTE0NC0xNDQtMTQ0UzAgOTYuNSAwIDE3NmMwIDY4LjUgNDcuOSAxMjUuOSAxMTIgMTQwLjRWMzY4SDc2Yy02LjYgMC0xMiA1LjQtMTIgMTJ2NDBjMCA2LjYgNS40IDEyIDEyIDEyaDM2djM2YzAgNi42IDUuNCAxMiAxMiAxMmg0MGM2LjYgMCAxMi01LjQgMTItMTJ2LTM2aDM2YzYuNiAwIDEyLTUuNCAxMi0xMnYtNDBjMC02LjYtNS40LTEyLTEyLTEyaC0zNnYtNTEuNmM2NC4xLTE0LjUgMTEyLTcxLjkgMTEyLTE0MC40em0tMjI0IDBjMC00NC4xIDM1LjktODAgODAtODBzODAgMzUuOSA4MCA4MC0zNS45IDgwLTgwIDgwLTgwLTM1LjktODAtODB6Ij48L3BhdGg+PC9zdmc+'; VidalHistoryTtt.warningIcon = `data:image/png;base64,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`; VidalHistoryTtt.styles = styles; __decorate([ property({ type: Array }) ], VidalHistoryTtt.prototype, "medicationDispenses", null); __decorate([ property() ], VidalHistoryTtt.prototype, "grouping", null); __decorate([ property({ attribute: false }) ], VidalHistoryTtt.prototype, "patient", null); __decorate([ property({ attribute: false }) ], VidalHistoryTtt.prototype, "dataFetchingSupplier", void 0); __decorate([ property({ attribute: false }) ], VidalHistoryTtt.prototype, "dataDate", void 0); __decorate([ property({ attribute: false }) ], VidalHistoryTtt.prototype, "dataSource", void 0); __decorate([ property() ], VidalHistoryTtt.prototype, "drugsForDateEvent", void 0); VidalHistoryTtt = VidalHistoryTtt_1 = __decorate([ customElement('vidal-history-ttt') ], VidalHistoryTtt); export { VidalHistoryTtt }; //# sourceMappingURL=vidal-history-ttt.js.map