@claudebernard/therapeutic-alternative-element 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,10 @@
1
+ # \<bcb-therapeutic-alternative> element
2
+
3
+ An element providing some custom stuff.
4
+
5
+ See the related developer documentation on
6
+ the [Claude Bernard Developer Portal](https://platform.claudebernard.fr/doc).
7
+
8
+ ## License
9
+
10
+ Copyright of Cegedim. See [LICENSE](LICENSE.md) for details
@@ -0,0 +1,535 @@
1
+ import { Bundle } from 'fhir/r5.js';
2
+ import { CSSResult } from 'lit';
3
+ import { LitElement } from 'lit';
4
+ import { Medication } from 'fhir/r5';
5
+ import { MedicationRequest } from 'fhir/r5';
6
+ import { TemplateResult } from 'lit-html';
7
+
8
+ /**
9
+ * Interface pour représenter un médicament extrait d'un Bundle FHIR
10
+ */
11
+ declare interface MedicationInfo {
12
+ medication: Medication;
13
+ medicationRequest: MedicationRequest | null;
14
+ idPrescription: string;
15
+ }
16
+
17
+ declare type ProductAtcClassBean = {
18
+ code?: string;
19
+ label?: string;
20
+ };
21
+
22
+ declare type ProductBean = {
23
+ code?: string;
24
+ productId?: number;
25
+ type?: number;
26
+ typeCategory?: number;
27
+ labelHtml?: string;
28
+ code13?: string;
29
+ deletedDate?: string;
30
+ deleted?: boolean;
31
+ replacementProductId?: number;
32
+ replacementProductLabel?: string;
33
+ labels?: ProductLabelsBean;
34
+ properties?: ProductPropertiesBean;
35
+ prices?: ProductPricesBean;
36
+ searchProperties?: ProductSearchPropertiesBean;
37
+ extendedProperties?: ProductExtendedPropertiesBean;
38
+ };
39
+
40
+ declare type ProductCareBasketBean = {
41
+ code?: string;
42
+ startDate?: string;
43
+ endDate?: string;
44
+ averagePrice?: string;
45
+ visibility?: number;
46
+ label?: string;
47
+ };
48
+
49
+ declare type ProductClassBean = {
50
+ code?: string;
51
+ label?: string;
52
+ codeLvl1?: string;
53
+ labelLvl1?: string;
54
+ codeLvl2?: string;
55
+ labelLvl2?: string;
56
+ codeLvl3?: string;
57
+ labelLvl3?: string;
58
+ codeLvl4?: string;
59
+ labelLvl4?: string;
60
+ codeLvl5?: string;
61
+ labelLvl5?: string;
62
+ codeLvl6?: string;
63
+ labelLvl6?: string;
64
+ codeLvl7?: string;
65
+ labelLvl7?: string;
66
+ notSubstituable?: number;
67
+ };
68
+
69
+ declare type ProductCodesBean = {
70
+ cip7?: string;
71
+ cip13?: string;
72
+ cip13Referent?: string;
73
+ ucd7?: string;
74
+ ucd13?: string;
75
+ cis?: string;
76
+ code13Referent?: string;
77
+ ean13?: Array<ProductEan13Bean>;
78
+ udi?: Array<ProductUdiBean>;
79
+ };
80
+
81
+ declare type ProductComponentBean = {
82
+ code?: string;
83
+ label?: string;
84
+ parentCode?: string;
85
+ };
86
+
87
+ declare type ProductComponentsBean = {
88
+ activeSubstances?: Array<ProductComponentBean>;
89
+ excipients?: Array<ProductComponentBean>;
90
+ excipientsWithKnownEffects?: Array<ProductComponentBean>;
91
+ };
92
+
93
+ declare type ProductCrushabilityBean = {
94
+ unpleasantTaste?: number;
95
+ crushable?: number;
96
+ openable?: number;
97
+ disintegrationPossible?: number;
98
+ canBeTakenWithWater?: number;
99
+ canBeTakenWithOrangeJuice?: number;
100
+ canBeTakenWithMilk?: number;
101
+ canBeTakenWithYogurt?: number;
102
+ canBeTakenWithCompote?: number;
103
+ immediateMedicationPossible?: number;
104
+ informations?: string;
105
+ };
106
+
107
+ declare type ProductDocumentBean = {
108
+ code?: string;
109
+ name?: string;
110
+ extension?: string;
111
+ source?: string;
112
+ date?: string;
113
+ title?: string;
114
+ titleHtml?: string;
115
+ category?: string;
116
+ categoryHtml?: string;
117
+ link?: string;
118
+ };
119
+
120
+ declare type ProductEan13Bean = {
121
+ code?: string;
122
+ };
123
+
124
+ declare type ProductExtendedFlagsBean = {
125
+ bloodDerivative?: number;
126
+ anticoagulant?: number;
127
+ vaccin?: number;
128
+ soluteDilution?: number;
129
+ emergencyContraceptive?: number;
130
+ minorContraceptive?: number;
131
+ fridge?: number;
132
+ humanAntibiotic?: number;
133
+ veterinaryAntibiotic?: number;
134
+ veterinaryPrescription?: number;
135
+ deconditionning?: number;
136
+ seasonalFluVaccine?: number;
137
+ ghs?: number;
138
+ horsGhs?: number;
139
+ infertilityTreatment?: number;
140
+ mindalteringSubstance?: number;
141
+ testReagent?: number;
142
+ firstAgeMilk?: number;
143
+ abortionDrug?: number;
144
+ mte?: number;
145
+ tfr?: number;
146
+ biosimilarReferent?: number;
147
+ freezer?: number;
148
+ reinforcedMonitoring?: number;
149
+ t2a?: number;
150
+ communityApproval?: number;
151
+ drugException?: number;
152
+ hybridReferent?: number;
153
+ pregnancyPictogram?: number;
154
+ };
155
+
156
+ declare type ProductExtendedPropertiesBean = {
157
+ brandCode?: string;
158
+ brandLabel?: string;
159
+ brandLabelHtml?: string;
160
+ rangeCode?: string;
161
+ rangeLabel?: string;
162
+ rangeLabelHtml?: string;
163
+ biosimilarGroupLabel?: string;
164
+ numberOfUcds?: number;
165
+ listCode?: string;
166
+ listLabel?: string;
167
+ statusCode?: number;
168
+ statusLabel?: string;
169
+ commonNameCode?: string;
170
+ commonNameLabel?: string;
171
+ revisionDate?: string;
172
+ segmentationStatus?: string;
173
+ segmentationStatusHtml?: string;
174
+ actCode?: string;
175
+ actLabelHtml?: string;
176
+ ammNumber?: string;
177
+ segments?: string;
178
+ segmentsHtml?: string;
179
+ equivalentDosage?: Array<string>;
180
+ genericGroups?: Array<ProductGenericGroupBean>;
181
+ ammDate?: string;
182
+ ammRevisionDate?: string;
183
+ composition?: ProductComponentsBean;
184
+ holderLab?: ProductLaboratoryBean;
185
+ operatingLab?: ProductLaboratoryBean;
186
+ chapters?: Array<ProductMonographChaptersBean>;
187
+ paradocChapters?: Array<ProductMonographChaptersBean>;
188
+ atcClass?: Array<ProductClassBean>;
189
+ bcbClass?: Array<ProductClassBean>;
190
+ routes?: Array<ProductRouteAdministrationBean>;
191
+ prescriptibles?: ProductPrescriptibleBean;
192
+ restrictedPrescription?: Array<ProductRestrictedPrescriptionBean>;
193
+ documents?: Array<ProductDocumentBean>;
194
+ segmentationAttributes?: ProductSegmentationAttributesBean;
195
+ keywords?: ProductKeywordBean;
196
+ crushability?: ProductCrushabilityBean;
197
+ specialPrescription?: Array<ProductSpecialPrescriptionBean>;
198
+ photo?: string;
199
+ sam?: ProductSamBean;
200
+ creationDate?: string;
201
+ pricesHistory?: Array<ProductPriceHistoryBean>;
202
+ tips?: Array<ProductTipsBean>;
203
+ identifier?: ProductIdentifierBean;
204
+ };
205
+
206
+ declare type ProductFlagsBean = {
207
+ misuse?: number;
208
+ careBasket?: number;
209
+ doping?: number;
210
+ driveWarning?: string;
211
+ narcotic?: number;
212
+ crushable?: number;
213
+ referent?: number;
214
+ generic?: number;
215
+ biosimilar?: number;
216
+ hospitalDelivery?: number;
217
+ internal?: number;
218
+ medicalDevice?: number;
219
+ homeo?: number;
220
+ pediatrics?: number;
221
+ hybrid?: number;
222
+ extendedFlags?: ProductExtendedFlagsBean;
223
+ };
224
+
225
+ declare type ProductGenericGroupBean = {
226
+ genericGroupCode?: string;
227
+ genericGroupLabel?: string;
228
+ genericGroupLabelHtml?: string;
229
+ };
230
+
231
+ declare type ProductIdentifierBean = {
232
+ numberOfPresentations?: string;
233
+ unitsPerPresentation?: string;
234
+ presentationLabel?: string;
235
+ packagingLabel?: string;
236
+ unitPresentationLabel?: string;
237
+ unitPresentationLabelPlural?: string;
238
+ };
239
+
240
+ declare type ProductIntakeUnitBean = {
241
+ order?: number;
242
+ code?: number;
243
+ labelHtml?: string;
244
+ pluralLabelHtml?: string;
245
+ shortLabelHtml?: string;
246
+ dispensationNumber?: string;
247
+ distributionNumber?: string;
248
+ intakeUnitNumber?: string;
249
+ round?: number;
250
+ throwTheRest?: number;
251
+ };
252
+
253
+ declare type ProductKeywordBean = {
254
+ indicationsKeywords?: Array<ProductKeywordDetailBean>;
255
+ contraindicationsKeywords?: Array<ProductKeywordDetailBean>;
256
+ contraindicationsNotRecommendedKeywords?: Array<ProductKeywordDetailBean>;
257
+ sideEffectsKeywords?: Array<ProductKeywordDetailBean>;
258
+ precautionsForUseKeywords?: Array<ProductKeywordDetailBean>;
259
+ };
260
+
261
+ declare type ProductKeywordDetailBean = {
262
+ code?: string;
263
+ label?: string;
264
+ labelHtml?: string;
265
+ frequencyCode?: string;
266
+ frequencyLabel?: string;
267
+ frequencyLabelHtml?: string;
268
+ socCode?: string;
269
+ socLabel?: string;
270
+ socShortLabel?: string;
271
+ glossary?: number;
272
+ };
273
+
274
+ declare type ProductLabelsBean = {
275
+ typeLabel?: string;
276
+ label?: string;
277
+ shortLabel?: string;
278
+ shortLabelHtml?: string;
279
+ longLabel?: string;
280
+ longLabelHtml?: string;
281
+ searchLabel?: string;
282
+ };
283
+
284
+ declare type ProductLaboratoryBean = {
285
+ code?: string;
286
+ label?: string;
287
+ address?: string;
288
+ zipCode?: string;
289
+ town?: string;
290
+ website?: string;
291
+ email?: string;
292
+ phone?: string;
293
+ fax?: string;
294
+ country?: string;
295
+ };
296
+
297
+ declare type ProductLppBean = {
298
+ code?: string;
299
+ label?: string;
300
+ order?: string;
301
+ coefficient?: string;
302
+ text?: string;
303
+ qualifying?: string;
304
+ };
305
+
306
+ declare type ProductMedicabaseBean = {
307
+ medicabaseCode?: string;
308
+ medicabaseLabel?: string;
309
+ standardCodeTerm?: string;
310
+ dosageUse?: string;
311
+ dosageNumerator?: string;
312
+ dosageNumeratorUnit?: string;
313
+ dosageDenominator?: string;
314
+ dosageDenominatorUnit?: string;
315
+ molecules?: Array<ProductMoleculeBean>;
316
+ };
317
+
318
+ declare type ProductMoleculeBean = {
319
+ moleculeId?: string;
320
+ moleculeLabel?: string;
321
+ country?: string;
322
+ dosageQuantity?: number;
323
+ dosageUnit?: string;
324
+ dosageConcatenation?: string;
325
+ dosageBaseExpression?: boolean;
326
+ };
327
+
328
+ declare type ProductMonographChaptersBean = {
329
+ id?: string;
330
+ label?: string;
331
+ text?: string;
332
+ };
333
+
334
+ declare type ProductPrescriptibleBean = {
335
+ nurse?: string;
336
+ podiatrist?: string;
337
+ physiotherapist?: string;
338
+ midwifeForWomen?: string;
339
+ midwifeForNewborns?: string;
340
+ speechTherapist?: string;
341
+ orthoptist?: string;
342
+ midwifeForPatient?: string;
343
+ advancedPracticeNurse?: string;
344
+ dentist?: string;
345
+ biologist?: string;
346
+ pharmacist?: string;
347
+ occupationalTherapist?: string;
348
+ doctor?: string;
349
+ veterinary?: string;
350
+ };
351
+
352
+ declare type ProductPriceHistoryBean = {
353
+ field?: string;
354
+ applicationDate?: string;
355
+ value?: string;
356
+ opposabilityDate?: string;
357
+ joDate?: string;
358
+ nor?: string;
359
+ correctedValue?: string;
360
+ correctedOpposabilityDate?: string;
361
+ correctionSource?: string;
362
+ sourceLabel?: string;
363
+ };
364
+
365
+ declare type ProductPricesBean = {
366
+ ucdPrice?: string;
367
+ repaymentRate?: number;
368
+ vatRate?: string;
369
+ reimbursementBase?: string;
370
+ sellingPrice?: string;
371
+ tfr?: string;
372
+ };
373
+
374
+ declare type ProductPropertiesBean = {
375
+ thumbnail?: string;
376
+ productName?: string;
377
+ productDosage?: string;
378
+ galenicFormCode?: string;
379
+ galenicFormLabel?: string;
380
+ galenicFormLabelHtml?: string;
381
+ aspect?: string;
382
+ inFacilityFormulary?: boolean;
383
+ medicabase?: ProductMedicabaseBean;
384
+ virtualDrug?: ProductVirtualDrugBean;
385
+ codes?: ProductCodesBean;
386
+ flags?: ProductFlagsBean;
387
+ careBasket?: ProductCareBasketBean;
388
+ segmentationAttributes?: Array<string>;
389
+ excipientsWithKnowEffects?: Array<ProductComponentBean>;
390
+ atcClasses?: Array<ProductAtcClassBean>;
391
+ intakeUnits?: Array<ProductIntakeUnitBean>;
392
+ lpp?: Array<ProductLppBean>;
393
+ subLaboratories?: Array<ProductSubLaboratoryBean>;
394
+ };
395
+
396
+ declare type ProductRestrictedPrescriptionBean = {
397
+ code?: string;
398
+ title?: string;
399
+ titleHtml?: string;
400
+ decree?: string;
401
+ decreeHtml?: string;
402
+ };
403
+
404
+ declare type ProductRouteAdministrationBean = {
405
+ code?: string;
406
+ label?: string;
407
+ };
408
+
409
+ declare type ProductSamBean = {
410
+ code?: string;
411
+ name?: string;
412
+ author?: string;
413
+ coAuthor?: string;
414
+ referencingDate?: string;
415
+ title?: string;
416
+ requester?: string;
417
+ hospitalLAP?: number;
418
+ outpatientLAP?: number;
419
+ pharmacyLAD?: number;
420
+ puiLAD?: number;
421
+ validationDate?: string;
422
+ updateDate?: string;
423
+ versionNumber?: string;
424
+ status?: string;
425
+ source?: string;
426
+ contact?: string;
427
+ logo?: string;
428
+ pdf?: string;
429
+ hospitalLAPText?: string;
430
+ outpatientLAPText?: string;
431
+ pharmacyLADText?: string;
432
+ };
433
+
434
+ declare type ProductSearchPropertiesBean = {
435
+ score?: number;
436
+ safeScore?: number;
437
+ safeDetails?: Array<SafeSearchBean>;
438
+ samCode?: string;
439
+ samPatient?: boolean;
440
+ };
441
+
442
+ declare type ProductSegmentationAttributesBean = {
443
+ others?: Array<string>;
444
+ patientGrounds?: Array<string>;
445
+ distributionChannels?: Array<string>;
446
+ };
447
+
448
+ declare type ProductSpecialPrescriptionBean = {
449
+ label?: string;
450
+ speciality?: string;
451
+ };
452
+
453
+ declare type ProductSubLaboratoryBean = {
454
+ code?: number;
455
+ label?: string;
456
+ };
457
+
458
+ declare type ProductTipsBean = {
459
+ order?: string;
460
+ operator?: string;
461
+ coefficient?: string;
462
+ qualifying?: string;
463
+ code?: string;
464
+ label?: string;
465
+ startDate?: string;
466
+ endDate?: string;
467
+ natureOfService?: string;
468
+ price?: string;
469
+ type?: string;
470
+ actCode?: string;
471
+ publicPrice?: string;
472
+ };
473
+
474
+ declare type ProductUdiBean = {
475
+ order?: string;
476
+ udiType?: string;
477
+ udi?: string;
478
+ };
479
+
480
+ declare type ProductVirtualDrugBean = {
481
+ virtualDrugCode?: number;
482
+ virtualDrugLabel?: string;
483
+ };
484
+
485
+ declare type SafeSearchBean = {
486
+ codeAlerte?: number;
487
+ libelleAlerte?: string;
488
+ typeAlerte?: string;
489
+ niveauAlerte?: number;
490
+ idAlerte?: string;
491
+ productId2?: number;
492
+ productLabel2?: string;
493
+ details?: string;
494
+ };
495
+
496
+ /**
497
+ * Composant pour afficher les alternatives thérapeutiques d'un médicament donné
498
+ * Permet à l'utilisateur de sélectionner une indication pour laquelle il souhaite trouver une alternative thérapeutique, et affiche les résultats correspondants.
499
+ * @element bcb-therapeutic-alternative
500
+ */
501
+ export declare class TherapeuticAlternative extends LitElement {
502
+ hasTitle: boolean;
503
+ medication: MedicationInfo | null;
504
+ patientProfile: Bundle | null;
505
+ apiUrl: string;
506
+ apiKey: string | undefined;
507
+ indicationSelected: {
508
+ code: string;
509
+ label: string;
510
+ } | undefined;
511
+ indicationsList: {
512
+ code: string;
513
+ label: string;
514
+ }[];
515
+ apiInfoError: string | null;
516
+ apiSearchError: string | null;
517
+ apiSearchLoading: boolean;
518
+ apiInfoLoading: boolean;
519
+ numberTotalOfResults: number | null;
520
+ currentPage: number;
521
+ productsList: ProductBean[];
522
+ updated(changedProperties: Map<string | number | symbol, unknown>): void;
523
+ private selectIndication;
524
+ private getIndicationsListForMedication;
525
+ private searchTherapeuticAlternative;
526
+ private cancelAlternative;
527
+ private handlePageChange;
528
+ private emitReplacedProduct;
529
+ private displayResult;
530
+ private displayRadioButtons;
531
+ render(): TemplateResult<1>;
532
+ static styles: CSSResult;
533
+ }
534
+
535
+ export { }