@tekkare/romulus 0.1.251 → 0.1.253
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/dist/module.json +1 -1
- package/dist/runtime/utils/projects.d.ts +8 -0
- package/dist/runtime/utils/projects.js +8 -5
- package/layer/app/app.config.ts +6 -0
- package/layer/app/components/OipPubmedSummary.vue +223 -0
- package/layer/app/components/OipResourceDrawer.vue +331 -0
- package/layer/app/components/OipResourceDrawerLink.vue +40 -0
- package/layer/app/components/OipResourceField.vue +41 -0
- package/layer/app/components/OipResourceGenericCard.vue +54 -0
- package/layer/app/components/OipResourceSource.vue +50 -0
- package/layer/app/components/OipResourceTags.vue +65 -0
- package/layer/app/components/OipResourceView.vue +107 -0
- package/layer/app/components/oip-drugs/fiches/AssociationFiche.vue +775 -0
- package/layer/app/components/oip-drugs/fiches/BrandFiche.vue +1111 -0
- package/layer/app/components/oip-drugs/fiches/IndicationFiche.vue +182 -0
- package/layer/app/components/oip-drugs/fiches/JoFiche.vue +101 -0
- package/layer/app/components/oip-drugs/fiches/PndsFiche.vue +279 -0
- package/layer/app/components/oip-drugs/heart/JoCard.vue +314 -0
- package/layer/app/components/oip-drugs/heart/TextHighlight.vue +326 -0
- package/layer/app/components/oip-drugs/heart/ansm/BrandCard.vue +187 -0
- package/layer/app/components/oip-drugs/heart/ansm/CisDetail.vue +363 -0
- package/layer/app/components/oip-drugs/heart/ansm/CisTable.vue +167 -0
- package/layer/app/components/oip-drugs/heart/associations/NationalAssemblyCard.vue +373 -0
- package/layer/app/components/oip-drugs/heart/associations/NationalAssemblyFiche.vue +372 -0
- package/layer/app/components/oip-drugs/heart/associations/TranscriptionCard.vue +55 -0
- package/layer/app/components/oip-drugs/heart/elastic/SourceContainerElastic.vue +103 -0
- package/layer/app/components/oip-drugs/heart/france/BrandGroupCard.vue +450 -0
- package/layer/app/components/oip-drugs/heart/mitm/Card.vue +199 -0
- package/layer/app/components/oip-drugs/heart/mitm/Source.vue +23 -0
- package/layer/app/components/oip-drugs/heart/mitm/details/Overview.vue +381 -0
- package/layer/app/components/oip-drugs/heart/put/Card.vue +212 -0
- package/layer/app/components/oip-drugs/heart/results/AccesCard.vue +696 -0
- package/layer/app/components/oip-drugs/heart/results/AlertCard.vue +342 -0
- package/layer/app/components/oip-drugs/heart/results/AsmrCursor.vue +229 -0
- package/layer/app/components/oip-drugs/heart/results/EvalCard.vue +370 -0
- package/layer/app/components/oip-drugs/heart/results/IndicCard.vue +743 -0
- package/layer/app/components/oip-drugs/heart/results/MatchExplain.vue +243 -0
- package/layer/app/components/oip-drugs/heart/results/PrefRows.vue +105 -0
- package/layer/app/components/oip-drugs/heart/results/details/HasHistory.vue +487 -0
- package/layer/app/components/oip-drugs/heart/results/details/InternationalCountryCard.vue +461 -0
- package/layer/app/components/oip-drugs/heart/results/details/InternationalOverview.vue +200 -0
- package/layer/app/components/oip-drugs/heart/results/details/InternationalPriceDrawer.vue +647 -0
- package/layer/app/components/oip-drugs/heart/results/details/Monograph.vue +128 -0
- package/layer/app/components/oip-drugs/heart/results/details/OpinionDrawer.vue +535 -0
- package/layer/app/components/oip-drugs/heart/results/details/PresentationDrawer.vue +738 -0
- package/layer/app/components/oip-drugs/heart/results/details/Price.vue +227 -0
- package/layer/app/components/oip-drugs/heart/results/details/PriceOverview.vue +1261 -0
- package/layer/app/components/oip-drugs/heart/results/details/RecordDrawer.vue +494 -0
- package/layer/app/components/oip-drugs/heart/results/details/RecordList.vue +426 -0
- package/layer/app/components/oip-drugs/heart/results/les/Card.vue +340 -0
- package/layer/app/components/oip-drugs/heart/results/les/Drawer.vue +67 -0
- package/layer/app/components/oip-drugs/heart/results/les/IndicationDetail.vue +149 -0
- package/layer/app/components/oip-drugs/heart/results/les/Source.vue +20 -0
- package/layer/app/components/oip-drugs/heart/results/les/SourceTag.vue +39 -0
- package/layer/app/components/oip-drugs/heart/searchPage/DynamicSource.vue +29 -0
- package/layer/app/components/oip-drugs/medicam/market/Chart.vue +121 -0
- package/layer/app/components/oip-drugs/outpatient/ProductEvolution.vue +236 -0
- package/layer/app/components/oip-drugs/resources/Ansm.vue +75 -0
- package/layer/app/components/oip-drugs/resources/Association.vue +30 -0
- package/layer/app/components/oip-drugs/resources/Brand.vue +65 -0
- package/layer/app/components/oip-drugs/resources/Contribution.vue +216 -0
- package/layer/app/components/oip-drugs/resources/Hospital.vue +151 -0
- package/layer/app/components/oip-drugs/resources/Indication.vue +54 -0
- package/layer/app/components/oip-drugs/resources/Jo.vue +57 -0
- package/layer/app/components/oip-drugs/resources/Medicam.vue +140 -0
- package/layer/app/components/oip-drugs/resources/Mitm.vue +84 -0
- package/layer/app/components/oip-drugs/resources/NationalAssembly.vue +93 -0
- package/layer/app/components/oip-drugs/resources/Outpatient.vue +97 -0
- package/layer/app/components/oip-drugs/resources/Pnds.vue +24 -0
- package/layer/app/components/oip-drugs/resources/Price.vue +106 -0
- package/layer/app/components/oip-drugs/resources/Put.vue +143 -0
- package/layer/app/components/oip-science/appel-a-projet/Cards.vue +162 -0
- package/layer/app/components/oip-science/clinical-trials/Cards.vue +382 -0
- package/layer/app/components/oip-science/clinical-trials/CardsGlobal.vue +273 -0
- package/layer/app/components/oip-science/clinical-trials/LinkedList.vue +366 -0
- package/layer/app/components/oip-science/clinical-trials/PairBadge.vue +25 -0
- package/layer/app/components/oip-science/clinical-trials/PairBody.vue +182 -0
- package/layer/app/components/oip-science/clinical-trials/SitesDrawer.vue +95 -0
- package/layer/app/components/oip-science/common/Form.vue +73 -0
- package/layer/app/components/oip-science/common/MatchAvgTag.vue +283 -0
- package/layer/app/components/oip-science/common/NoData.vue +16 -0
- package/layer/app/components/oip-science/common/ScoreBadge.vue +35 -0
- package/layer/app/components/oip-science/common/Source.vue +31 -0
- package/layer/app/components/oip-science/common/TableTags.vue +279 -0
- package/layer/app/components/oip-science/common/Timeline.vue +104 -0
- package/layer/app/components/oip-science/common/ToolTips.vue +89 -0
- package/layer/app/components/oip-science/cross/publicationPubmed.vue +484 -0
- package/layer/app/components/oip-science/crossData/CrossDataLocations.vue +71 -0
- package/layer/app/components/oip-science/ctgov/Investigators.vue +148 -0
- package/layer/app/components/oip-science/ctgov/Locations.vue +102 -0
- package/layer/app/components/oip-science/ctgov/Publications.vue +52 -0
- package/layer/app/components/oip-science/ctgov/Sponsors.vue +66 -0
- package/layer/app/components/oip-science/ctgov/StudyDescription.vue +1136 -0
- package/layer/app/components/oip-science/ctgov-centers/ClinicalTrials.vue +40 -0
- package/layer/app/components/oip-science/ctgov-centers/Publications.vue +50 -0
- package/layer/app/components/oip-science/ctgov-investigators/ClinicalTrials.vue +43 -0
- package/layer/app/components/oip-science/ctgov-investigators/Informations.vue +171 -0
- package/layer/app/components/oip-science/ctgov-investigators/Publications.vue +44 -0
- package/layer/app/components/oip-science/elastic/DateRangeFilter.vue +209 -0
- package/layer/app/components/oip-science/elastic/Filter.vue +719 -0
- package/layer/app/components/oip-science/elastic/MatchExplain.vue +152 -0
- package/layer/app/components/oip-science/establishments/Cards.vue +183 -0
- package/layer/app/components/oip-science/establishments/ClinicalTrials.vue +62 -0
- package/layer/app/components/oip-science/establishments/Hcps.vue +227 -0
- package/layer/app/components/oip-science/establishments/Informations.vue +263 -0
- package/layer/app/components/oip-science/establishments/LinkedList.vue +153 -0
- package/layer/app/components/oip-science/establishments/MatchedLabels.vue +194 -0
- package/layer/app/components/oip-science/establishments/PublicFinance.vue +62 -0
- package/layer/app/components/oip-science/euct/Investigators.vue +125 -0
- package/layer/app/components/oip-science/euct/Locations.vue +102 -0
- package/layer/app/components/oip-science/euct/Products.vue +101 -0
- package/layer/app/components/oip-science/euct/Publications.vue +89 -0
- package/layer/app/components/oip-science/euct/Sponsors.vue +86 -0
- package/layer/app/components/oip-science/euct/StudyDescription.vue +1075 -0
- package/layer/app/components/oip-science/euct-centers/ClinicalTrials.vue +40 -0
- package/layer/app/components/oip-science/euct-centers/Publications.vue +55 -0
- package/layer/app/components/oip-science/euct-investigators/ClinicalTrials.vue +41 -0
- package/layer/app/components/oip-science/euct-investigators/Informations.vue +171 -0
- package/layer/app/components/oip-science/euct-investigators/Publications.vue +51 -0
- package/layer/app/components/oip-science/hcps/AppelsAProjet.vue +62 -0
- package/layer/app/components/oip-science/hcps/Cards.vue +237 -0
- package/layer/app/components/oip-science/hcps/ClinicalTrials.vue +78 -0
- package/layer/app/components/oip-science/hcps/Informations.vue +296 -0
- package/layer/app/components/oip-science/hcps/LinkedList.vue +153 -0
- package/layer/app/components/oip-science/hcps/MatchedLabels.vue +207 -0
- package/layer/app/components/oip-science/hcps/Pubmed.vue +128 -0
- package/layer/app/components/oip-science/local/SliderTabs.vue +99 -0
- package/layer/app/components/oip-science/local/SliderTabsFull.vue +135 -0
- package/layer/app/components/oip-science/pubmed/Authors.vue +128 -0
- package/layer/app/components/oip-science/pubmed/Cards.vue +417 -0
- package/layer/app/components/oip-science/pubmed/ClinicalTrials.vue +71 -0
- package/layer/app/components/oip-science/resources/Phrc.vue +39 -0
- package/layer/app/composables/useOipChapterScroll.ts +43 -0
- package/layer/app/composables/useOipResourceHooks.ts +27 -0
- package/layer/app/composables/useOipResourceNav.ts +66 -0
- package/layer/app/composables/useOipResourceViews.ts +117 -0
- package/layer/app/composables/useOipResources.ts +83 -0
- package/layer/app/oip-drugs/PORTING.md +120 -0
- package/layer/app/oip-drugs/composables/useAssociationDetail.ts +220 -0
- package/layer/app/oip-drugs/composables/useAssociationExport.ts +63 -0
- package/layer/app/oip-drugs/composables/useAssociationLookup.ts +105 -0
- package/layer/app/oip-drugs/composables/useCardPrefOptions.ts +201 -0
- package/layer/app/oip-drugs/composables/useCurrency.ts +121 -0
- package/layer/app/oip-drugs/composables/useDirectusSources.ts +224 -0
- package/layer/app/oip-drugs/composables/useHeartBrandMatches.ts +112 -0
- package/layer/app/oip-drugs/composables/useHeartDetailSearches.ts +479 -0
- package/layer/app/oip-drugs/composables/useHeartIntlApprovals.ts +661 -0
- package/layer/app/oip-drugs/composables/useHeartLesIndication.ts +168 -0
- package/layer/app/oip-drugs/composables/useHeartMatchExplain.ts +231 -0
- package/layer/app/oip-drugs/composables/useHeartReports.ts +239 -0
- package/layer/app/oip-drugs/composables/useHeartSearchFields.ts +233 -0
- package/layer/app/oip-drugs/composables/useMergeByKey.ts +23 -0
- package/layer/app/oip-drugs/composables/useOipDrugsElastic.ts +621 -0
- package/layer/app/oip-drugs/composables/usePageEmpty.ts +58 -0
- package/layer/app/oip-drugs/composables/v-useSalesSource.ts +64 -0
- package/layer/app/oip-drugs/drugs.css +500 -0
- package/layer/app/oip-drugs/esIndices.ts +322 -0
- package/layer/app/oip-drugs/kinds.ts +264 -0
- package/layer/app/oip-drugs/locales/en.json +1571 -0
- package/layer/app/oip-drugs/locales/fr.json +1571 -0
- package/layer/app/oip-drugs/monographs/blincyto-has.vue +289 -0
- package/layer/app/oip-drugs/monographs/darzalex-has.vue +276 -0
- package/layer/app/oip-drugs/monographs/dupixent-has.vue +216 -0
- package/layer/app/oip-drugs/monographs/enhertu-has.vue +280 -0
- package/layer/app/oip-drugs/monographs/has-sein-2023.vue +1649 -0
- package/layer/app/oip-drugs/monographs/ibrance-has.vue +277 -0
- package/layer/app/oip-drugs/monographs/imfinzi-has.vue +293 -0
- package/layer/app/oip-drugs/monographs/keytruda-has.vue +334 -0
- package/layer/app/oip-drugs/monographs/kisqali-has.vue +201 -0
- package/layer/app/oip-drugs/monographs/opdivo-has.vue +231 -0
- package/layer/app/oip-drugs/monographs/ozempic-has.vue +186 -0
- package/layer/app/oip-drugs/monographs/tecentriq-has.vue +312 -0
- package/layer/app/oip-drugs/monographs/yescarta-has.vue +272 -0
- package/layer/app/oip-drugs/types/elastic.ts +113 -0
- package/layer/app/oip-drugs/types/es/agencies.ts +152 -0
- package/layer/app/oip-drugs/types/es/directory.ts +54 -0
- package/layer/app/oip-drugs/types/es/docByIndex.ts +151 -0
- package/layer/app/oip-drugs/types/es/openmedic.ts +67 -0
- package/layer/app/oip-drugs/types/es/outpatient.ts +71 -0
- package/layer/app/oip-drugs/types/es/portal.ts +130 -0
- package/layer/app/oip-drugs/types/es/retail.ts +107 -0
- package/layer/app/oip-drugs/types/es/statistics.ts +29 -0
- package/layer/app/oip-drugs/types/heart/CurrencyRate.ts +16 -0
- package/layer/app/oip-drugs/types/heart/ansm.ts +106 -0
- package/layer/app/oip-drugs/types/heart/tag.ts +29 -0
- package/layer/app/oip-drugs/utils/associationFields.ts +118 -0
- package/layer/app/oip-drugs/utils/contributions.ts +36 -0
- package/layer/app/oip-drugs/utils/countryMapping.ts +387 -0
- package/layer/app/oip-drugs/utils/esHighlight.ts +21 -0
- package/layer/app/oip-drugs/utils/exportSheets.ts +57 -0
- package/layer/app/oip-drugs/utils/heartIntlPrice.ts +228 -0
- package/layer/app/oip-drugs/utils/heartStyleAndFormat.ts +262 -0
- package/layer/app/oip-drugs/utils/heartStyleAnsm.ts +71 -0
- package/layer/app/oip-drugs/utils/latestDate.ts +31 -0
- package/layer/app/oip-drugs/utils/p-heartCardTags.ts +53 -0
- package/layer/app/oip-drugs/utils/priceExport.ts +269 -0
- package/layer/app/oip-drugs/utils/q-hasRatings.ts +43 -0
- package/layer/app/oip-drugs/utils/s-openCard.ts +20 -0
- package/layer/app/oip-drugs/utils/sourceUuids.ts +155 -0
- package/layer/app/oip-drugs/utils/styleAndFormat.ts +40 -0
- package/layer/app/oip-drugs/utils/v-salesSeries.ts +156 -0
- package/layer/app/oip-drugs/utils/v-scopeTags.ts +23 -0
- package/layer/app/oip-science/PORTING.md +93 -0
- package/layer/app/oip-science/assets/smartSelection.json +428 -0
- package/layer/app/oip-science/composables/useAuthorMatching.ts +342 -0
- package/layer/app/oip-science/composables/useCTCenter.ts +107 -0
- package/layer/app/oip-science/composables/useCTInvestigators.ts +107 -0
- package/layer/app/oip-science/composables/useEstablishmentCrossData.ts +139 -0
- package/layer/app/oip-science/composables/useEstablishmentMatching.ts +176 -0
- package/layer/app/oip-science/composables/useEuct.ts +418 -0
- package/layer/app/oip-science/composables/useEuctCenter.ts +107 -0
- package/layer/app/oip-science/composables/useEuctInvestigators.ts +107 -0
- package/layer/app/oip-science/composables/useGlobalClinicalTrials.ts +624 -0
- package/layer/app/oip-science/composables/useLinkedTrials.ts +83 -0
- package/layer/app/oip-science/composables/useOipElastic.ts +658 -0
- package/layer/app/oip-science/composables/useOipSearchExplain.ts +166 -0
- package/layer/app/oip-science/composables/usePubmed.ts +487 -0
- package/layer/app/oip-science/composables/useSearchFields.ts +153 -0
- package/layer/app/oip-science/indexConfig.json +794 -0
- package/layer/app/oip-science/locales/en.json +483 -0
- package/layer/app/oip-science/locales/fr.json +483 -0
- package/layer/app/oip-science/science.css +1182 -0
- package/layer/app/oip-science/utils/a-openCard.ts +23 -0
- package/layer/app/oip-science/utils/b-openCard.ts +35 -0
- package/layer/app/oip-science/utils/c-filterContext.ts +81 -0
- package/layer/app/oip-science/utils/f-types.ts +241 -0
- package/layer/app/oip-science/utils/frDiseaseTerms.ts +269 -0
- package/layer/app/oip-science/utils/matchMethod.ts +53 -0
- package/layer/app/oip-science/utils/sliderTabs.ts +13 -0
- package/layer/app/oip-science/utils/sources.ts +15 -0
- package/layer/app/oip-science/utils/styleAndFormat.ts +608 -0
- package/layer/app/oip-science/utils/toPresets.ts +7 -0
- package/layer/app/oip-science/utils/valueTable.ts +126 -0
- package/layer/app/plugins/oip-science-i18n.ts +17 -0
- package/layer/app/utils/oipFicheRoutes.ts +118 -0
- package/layer/app/utils/oipResources.ts +440 -0
- package/layer/nuxt.config.ts +22 -2
- package/layer/public/reports/blincyto-has.html +292 -0
- package/layer/public/reports/blincyto-has.pdf +0 -0
- package/layer/public/reports/darzalex-has.html +279 -0
- package/layer/public/reports/darzalex-has.pdf +0 -0
- package/layer/public/reports/dupixent-has.html +217 -0
- package/layer/public/reports/dupixent-has.pdf +0 -0
- package/layer/public/reports/enhertu-has.html +283 -0
- package/layer/public/reports/enhertu-has.pdf +0 -0
- package/layer/public/reports/has-sein-2023.html +1639 -0
- package/layer/public/reports/ibrance-has.html +280 -0
- package/layer/public/reports/ibrance-has.pdf +0 -0
- package/layer/public/reports/imfinzi-has.html +297 -0
- package/layer/public/reports/imfinzi-has.pdf +0 -0
- package/layer/public/reports/keytruda-has.html +337 -0
- package/layer/public/reports/keytruda-has.pdf +0 -0
- package/layer/public/reports/kisqali-has.html +202 -0
- package/layer/public/reports/kisqali-has.pdf +0 -0
- package/layer/public/reports/opdivo-has.html +232 -0
- package/layer/public/reports/opdivo-has.pdf +0 -0
- package/layer/public/reports/ozempic-has.html +188 -0
- package/layer/public/reports/ozempic-has.pdf +0 -0
- package/layer/public/reports/tecentriq-has.html +315 -0
- package/layer/public/reports/tecentriq-has.pdf +0 -0
- package/layer/public/reports/yescarta-has.html +275 -0
- package/layer/public/reports/yescarta-has.pdf +0 -0
- package/layer/server/api/oip/es.post.ts +99 -0
- package/layer/server/api/oip/pdf.get.ts +70 -0
- package/layer/server/api/oip/reports.get.ts +98 -0
- package/layer/server/api/oip/resource-types.get.ts +22 -0
- package/package.json +1 -1
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Yescarta (axicabtagene ciloleucel) : historique reglementaire HAS | Tekkare Intelligence
|
|
3
|
+
|
|
4
|
+
Monographie reglementaire, portee dans le projet : le document etait un
|
|
5
|
+
fichier autonome affiche en iframe, il est ici du vrai code de l'app — meme
|
|
6
|
+
DOM, memes styles, mais rendus par Nuxt. Le contenu editorial n'a pas ete
|
|
7
|
+
touche ; seuls le logo et le bouton PDF flottant du document d'origine ont
|
|
8
|
+
ete retires, la page les fournit elle-meme.
|
|
9
|
+
-->
|
|
10
|
+
<template>
|
|
11
|
+
<article class="mono">
|
|
12
|
+
<div class="hero">
|
|
13
|
+
<div class="hero-inner">
|
|
14
|
+
<div class="hero-top">
|
|
15
|
+
<span class="hero-date">16 juillet 2026</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="eyebrow-row">
|
|
18
|
+
<span class="ti-badge"><i class="ph-fill ph-sparkle" style="font-size:14px;"></i>Tekkare Intelligence</span>
|
|
19
|
+
<span class="eyebrow">Monographie réglementaire</span>
|
|
20
|
+
</div>
|
|
21
|
+
<h1><span class="mol">Yescarta</span> (axicabtagene ciloleucel)</h1>
|
|
22
|
+
<p class="sub">Le parcours HAS du premier CAR-T anti-CD19 remboursé en France : de la troisième ligne du lymphome B agressif jusqu'à la deuxième ligne, avec les niveaux de SMR / ASMR et un accès précoce dense, cartographiés à partir des données structurées OIP.</p>
|
|
23
|
+
<div class="produced"><i class="ph-fill ph-database" style="color:var(--db);font-size:15px;"></i>Produced with <span class="db-tag">OIP Databank<sup>®</sup></span></div>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
<div class="kpis">
|
|
28
|
+
<div class="kpi"><div class="n">6</div><div class="l">avis de la Commission de la Transparence avec SMR / ASMR</div></div>
|
|
29
|
+
<div class="kpi"><div class="n">2018</div><div class="l">Première indication : LDGCB et LMPGCB réfractaire ou en rechute après au moins deux lignes (5 déc. 2018)</div></div>
|
|
30
|
+
<div class="kpi"><div class="n">5</div><div class="l">avis notés ASMR III (modéré), le niveau maximal atteint et jamais dépassé</div></div>
|
|
31
|
+
<div class="kpi good"><div class="n">0</div><div class="l">refus thérapeutique : SMR jugé Important dans les six avis</div></div>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<div class="wrap">
|
|
35
|
+
|
|
36
|
+
<div class="legal" style="margin-top:28px;"><i class="ph-fill ph-warning-circle"></i><div><strong>Avertissement.</strong> Ce rapport est une aide à l'analyse. Il doit être validé par l'utilisateur avant tout usage officiel. Tekkare ne saurait être tenue responsable de son utilisation.</div></div>
|
|
37
|
+
|
|
38
|
+
<div class="takeaway">
|
|
39
|
+
<div class="tk-lab"><i class="ph-fill ph-lightbulb"></i>À retenir</div>
|
|
40
|
+
<p>Premier <em>CAR-T anti-CD19</em> inscrit au remboursement en France (2018), Yescarta a bâti sa valeur sur une seule maladie dominante, le lymphome B agressif, où il a été reconnu <em>ASMR III</em> d'emblée puis de façon constante sur toute la trajectoire. La dynamique tient à un déplacement du produit vers l'amont : de la troisième ligne (post au moins deux lignes) vers la <em>deuxième ligne</em> des rechutes précoces, adossé à l'essai comparatif ZUMA-7 (gain de survie sans événement, puis de survie globale confirmée en 2026). L'extension au lymphome folliculaire raconte une histoire inverse : faute de comparaison directe et dans l'attente de l'essai ZUMA-22, la Commission n'y a accordé qu'une <em>ASMR V</em> (absence d'amélioration démontrée), sans pour autant fermer l'accès puisque le SMR y reste Important. Aucun refus de prise en charge sur la période. L'accès précoce a été particulièrement mobilisé (six décisions, dont un protocole Pré-AMM pour la deuxième ligne), servant de rampe vers le remboursement en environ sept à neuf mois. Le prix se lit par traitement : une PFHT unique de 244 800 € la poche, financée en sus des séjours hospitaliers.</p>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<section>
|
|
44
|
+
<h2><i class="ph-fill ph-chart-line-up"></i>Synthèse</h2>
|
|
45
|
+
<p class="lead">Depuis son inscription initiale dans le lymphome diffus à grandes cellules B (LDGCB) et le lymphome médiastinal primitif à grandes cellules B (LMPGCB) réfractaire ou en rechute après au moins deux lignes de traitement systémique, en décembre 2018, l'axicabtagene ciloleucel a consolidé sa place dans les lymphomes B agressifs par des réévaluations successives (données à long terme de ZUMA-1 en 2021 et 2023), toujours confirmées à <em>ASMR III</em>. Le tournant stratégique est l'obtention, en février 2023, d'une nouvelle indication en deuxième ligne dans les rechutes précoces (moins de douze mois) ou réfractaires, portée par l'essai comparatif de phase III ZUMA-7 : un rare cas d'ASMR III adossé à une démonstration de supériorité, confirmé en mai 2026 par l'atteinte d'un bénéfice de survie globale statistiquement significatif. En parallèle, l'entrée dans le lymphome folliculaire réfractaire ou en rechute après au moins trois lignes (janvier 2023) n'a obtenu qu'une <em>ASMR V</em>, la Commission jugeant les données non comparatives insuffisantes dans un contexte où une comparaison robuste était possible. Le service médical rendu a été jugé Important dans les six avis chiffrés : il n'y a <em>aucun refus thérapeutique</em> sur la trajectoire, l'ASMR V du folliculaire traduisant une absence de plus-value démontrée, non une fermeture de l'accès.</p>
|
|
46
|
+
</section>
|
|
47
|
+
|
|
48
|
+
<section>
|
|
49
|
+
<h2><i class="ph-fill ph-shield-check"></i>Prise en charge : aucun refus, une plus-value non démontrée dans le folliculaire</h2>
|
|
50
|
+
<p class="lead">Aucun avis ne constitue un refus de prise en charge : le SMR est resté Important dans toutes les indications évaluées. Un avis mérite une lecture attentive, l'ASMR V accordée dans le lymphome folliculaire, qui restreint la reconnaissance de la valeur ajoutée sans fermer l'accès au remboursement.</p>
|
|
51
|
+
|
|
52
|
+
<div class="infobox">
|
|
53
|
+
<h3><i class="ph-fill ph-shield-check"></i>Aucun refus thérapeutique</h3>
|
|
54
|
+
<p>Sur les six avis assortis d'un SMR, aucun n'a conclu à un service médical rendu insuffisant. Chaque indication évaluée, du lymphome B agressif en troisième puis deuxième ligne jusqu'au lymphome folliculaire avancé, a été jugée d'un service médical rendu Important, traduisant une valeur clinique reconnue dans des situations engageant le pronostic vital et aux options limitées.</p>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<div class="restrict">
|
|
58
|
+
<h3><i class="ph-fill ph-minus-circle"></i>Une ASMR V dans le lymphome folliculaire, sans refus</h3>
|
|
59
|
+
<div class="meta">CT-19896 · 18 janv. 2023 · lymphome folliculaire réfractaire ou en rechute après au moins trois lignes de traitement systémique · SMR Important · ASMR V</div>
|
|
60
|
+
<p>Sur la base d'une étude de phase II non comparative (réponse objective de 94 % chez les patients lourdement prétraités), et faute de comparaison directe robuste à une alternative disponible alors qu'elle était jugée possible, la Commission a conclu à une absence d'amélioration du service médical rendu (ASMR V) dans le lymphome folliculaire, dans l'attente notamment de l'essai de phase III randomisé ZUMA-22. Le service médical rendu restant Important, la prise en charge n'est pas fermée : ce n'est pas un refus, mais une reconnaissance de valeur ajoutée suspendue à des données comparatives.</p>
|
|
61
|
+
</div>
|
|
62
|
+
</section>
|
|
63
|
+
|
|
64
|
+
<section>
|
|
65
|
+
<h2><i class="ph-fill ph-chart-bar"></i>Répartition des SMR et ASMR</h2>
|
|
66
|
+
<div class="dist" style="margin-bottom:14px;">
|
|
67
|
+
<div class="row"><span class="lab">SMR Important</span><div class="bar"><div class="fill" style="width:100%;background:var(--success);">6</div></div></div>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="dist">
|
|
70
|
+
<div class="row"><span class="lab">ASMR III (modéré)</span><div class="bar"><div class="fill" style="width:100%;background:var(--success);">5</div></div></div>
|
|
71
|
+
<div class="row"><span class="lab">ASMR V (absence)</span><div class="bar"><div class="fill" style="width:20%;background:var(--error);">1</div></div></div>
|
|
72
|
+
</div>
|
|
73
|
+
<p class="sku-cap" style="margin-top:12px;">Les six avis de la Commission de la Transparence assortis d'un niveau chiffré portent tous un SMR Important. L'ASMR atteint son maximum à III (modéré), obtenu à cinq reprises dans les lymphomes B agressifs ; l'unique ASMR V correspond au lymphome folliculaire.</p>
|
|
74
|
+
</section>
|
|
75
|
+
|
|
76
|
+
<section>
|
|
77
|
+
<h2><i class="ph-fill ph-currency-eur"></i>Prix et remboursement</h2>
|
|
78
|
+
<p class="lead">Yescarta est financé à l'hôpital <span class="pill-sus">inscrit sur la liste en sus</span>, en dehors des tarifs de séjour. C'est une immunothérapie cellulaire autologue à administration unique : les lymphocytes T du patient sont prélevés, modifiés pour exprimer un récepteur antigénique chimérique anti-CD19, puis réinjectés. Le produit se présente en une référence unique, une poche de dispersion pour perfusion. Le tableau récapitule le prix à jour de la présentation commercialisée.</p>
|
|
79
|
+
|
|
80
|
+
<table class="sku-table">
|
|
81
|
+
<thead>
|
|
82
|
+
<tr><th>Présentation</th><th>Régime</th><th>PFHT</th><th>Prix public</th><th>Dernière mise à jour</th></tr>
|
|
83
|
+
</thead>
|
|
84
|
+
<tbody>
|
|
85
|
+
<tr><td>Poche 0,4 à 2 × 10<sup>8</sup> cellules (68 mL)<br><span class="rg">dispersion pour perfusion, administration unique</span></td><td>Liste en sus</td><td class="num">244 800,00 €</td><td class="num">n.d.</td><td>1<sup>er</sup> mars 2026</td></tr>
|
|
86
|
+
</tbody>
|
|
87
|
+
</table>
|
|
88
|
+
<p class="sku-cap">PFHT (prix fabricant HT) de la présentation commercialisée, à la date de la dernière publication enregistrée dans les données OIP. Aucun prix public officine n'est renseigné, cohérent avec un produit hospitalier financé en sus des séjours. Yescarta étant une thérapie cellulaire dosée en cellules et administrée en une seule perfusion, le prix par traitement (par poche) est l'unité pertinente : le prix au milligramme n'a pas de sens pour ce produit.</p>
|
|
89
|
+
|
|
90
|
+
<p class="lead">La barre ci-dessous situe la <strong>PFHT (prix fabricant HT)</strong> de la poche, seule valeur de prix publiée dans les données OIP pour ce produit.</p>
|
|
91
|
+
<div class="price-wrap">
|
|
92
|
+
<div class="price-row"><span class="py">2026</span><div class="price-bar"><div class="price-fill" style="width:100.0%;">244 800,00 €</div></div></div>
|
|
93
|
+
<div class="price-note"><strong>PFHT (prix fabricant HT)</strong> de la <strong>poche unique</strong>. Les données OIP ne comportent qu'un seul point de prix publié (1<sup>er</sup> mars 2026) : aucune trajectoire d'évolution ne peut être tracée. Le produit avait d'abord relevé d'un circuit de rétrocession début 2019 (sans prix chiffré dans les données), avant d'être financé sur la liste en sus. Aucune révision de prix antérieure ou postérieure n'est publiée dans les données OIP.</div>
|
|
94
|
+
</div>
|
|
95
|
+
<p class="lead" style="margin-top:16px;">Lecture pour l'accès au marché : à la différence des cytotoxiques ou des anticorps à dosage récurrent, le coût s'apprécie par traitement administré une seule fois, ce qui simplifie la modélisation budgétaire mais concentre la dépense sur un acte unique et coûteux. L'absence de série historique dans les données OIP suggère une stabilité tarifaire à ce stade, l'essentiel de la négociation portant vraisemblablement sur des dispositifs conventionnels non publics.</p>
|
|
96
|
+
</section>
|
|
97
|
+
|
|
98
|
+
<section>
|
|
99
|
+
<h2><i class="ph-fill ph-rocket-launch"></i>Accès précoce</h2>
|
|
100
|
+
<p class="lead">L'accès précoce a joué un rôle central pour ce produit, notamment pour amener la deuxième ligne au remboursement avant l'AMM. Le suivi porte sur trois protocoles d'utilisation thérapeutique autorisés, au sein de six décisions d'accès précoce recensées au catalogue.</p>
|
|
101
|
+
<div class="ap-stats">
|
|
102
|
+
<div class="ap-stat"><span class="v">3</span><span class="k">protocoles d'accès précoce (PUT)</span></div>
|
|
103
|
+
<div class="ap-stat"><span class="v">1</span><span class="k">Pré-AMM (avant autorisation)</span></div>
|
|
104
|
+
<div class="ap-stat"><span class="v">2</span><span class="k">Post-AMM (après autorisation)</span></div>
|
|
105
|
+
<div class="ap-stat"><span class="v">6</span><span class="k">décisions d'accès précoce au catalogue</span></div>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="tl">
|
|
108
|
+
<div class="yr">2022</div>
|
|
109
|
+
<div class="ev"><div class="ev-top"><span class="date">14 avr. 2022</span><span class="ind">Lymphome folliculaire en rechute ou réfractaire, après au moins trois lignes de traitement systémique <span class="code"><a href="https://www.has-sante.fr/jcms/p_3333446/fr/yescarta-axicabtagene-ciloleucel-lymphome-folliculaire" target="_blank" rel="noopener">· AP-3333446</a></span></span><div class="badges"><span class="b b-post">Post-AMM</span><span class="b b-ongoing">En cours</span></div></div><div class="ctx">Remboursement de droit commun <strong style="color:var(--primary);">environ 9 mois</strong> après (avis CT-19896, 18 janv. 2023, ASMR V)</div></div>
|
|
110
|
+
<div class="ev"><div class="ev-top"><span class="date">13 juil. 2022</span><span class="ind">LDGCB réfractaire ou en rechute dans les 12 mois après une première ligne, éligible à une chimiothérapie de rattrapage puis à une autogreffe de cellules souches (deuxième ligne) <span class="code"><a href="https://www.has-sante.fr/jcms/p_3358972/fr/yescarta-axicabtagene-ciloleucel-lymphome-diffus-a-grandes-cellules-b" target="_blank" rel="noopener">· AP-3358972</a></span></span><div class="badges"><span class="b b-pre">Pré-AMM</span><span class="b b-ongoing">En cours</span></div></div><div class="ctx">Remboursement de droit commun <strong style="color:var(--primary);">environ 7 mois</strong> après (avis CT-20056, 15 févr. 2023, ASMR III)</div></div>
|
|
111
|
+
|
|
112
|
+
<div class="yr">2023</div>
|
|
113
|
+
<div class="ev"><div class="ev-top"><span class="date">16 févr. 2023</span><span class="ind">LHGCB éligibles à une autogreffe, et LDGCB / LHGCB non éligibles, ayant rechuté dans les 12 mois après la première ligne ou réfractaires <span class="code"><a href="https://www.has-sante.fr/jcms/p_3418585/fr/yescarta-axicabtagene-ciloleucel-lymphome-ldgcb-lhgcb" target="_blank" rel="noopener">· AP-3418585</a></span></span><div class="badges"><span class="b b-post">Post-AMM</span><span class="b b-closed">Clôturé</span></div></div><div class="ctx">Protocole clôturé au moment même du basculement vers le remboursement de droit commun de la deuxième ligne (avis CT-20056, 15 févr. 2023) : délai non exploitable (avis concomitant)</div></div>
|
|
114
|
+
</div>
|
|
115
|
+
<div class="disclaimer" style="padding:0;margin-top:14px;"><div class="disclaimer-inner"><i class="ph-fill ph-info"></i><div>Délais estimés par rapprochement d'indication entre chaque protocole d'accès précoce et le premier avis de la Commission de la Transparence portant la même situation clinique (fourchette d'environ 7 à 9 mois, médiane proche de 8 mois sur les deux cas exploitables). Le protocole clôturé de février 2023 est écarté du calcul, son autorisation étant concomitante de l'avis d'inscription correspondant. Au-delà de ces trois protocoles structurés, trois décisions d'accès précoce supplémentaires figurent au catalogue (AP-3426769, AP-3455507, AP-3506813, 2023 à 2024), correspondant à des renouvellements ou continuités de prise en charge ; leur sens décisionnel n'a pas été recoupé pièce à pièce. La première indication de 2018 est antérieure au régime actuel d'accès précoce et ne porte pas de code AP dans les données OIP.</div></div></div>
|
|
116
|
+
</section>
|
|
117
|
+
|
|
118
|
+
<section>
|
|
119
|
+
<h2><i class="ph-fill ph-clock-countdown"></i>Frise complète des avis de la Transparence</h2>
|
|
120
|
+
<p class="lead">Chaque avis de la Commission de la Transparence, par ordre chronologique. Les libellés d'indication sont repris du texte des avis structurés.</p>
|
|
121
|
+
|
|
122
|
+
<div class="tl">
|
|
123
|
+
|
|
124
|
+
<div class="yr">2018</div>
|
|
125
|
+
<div class="ev"><div class="ev-top"><span class="date">05 déc.</span><span class="ind">LDGCB et LMPGCB réfractaire ou en rechute, après au moins deux lignes de traitement systémique (adultes) <span class="code"><a href="https://www.has-sante.fr/jcms/c_2888882/fr/yescarta-axicabtagene-ciloleucel-car-t-anti-cd19" target="_blank" rel="noopener">· CT-17214</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a3">ASMR III</span></div></div><div class="ctx">Inscription initiale, première indication remboursée : premier CAR-T anti-CD19 en France</div></div>
|
|
126
|
+
|
|
127
|
+
<div class="yr">2021</div>
|
|
128
|
+
<div class="ev"><div class="ev-top"><span class="date">24 mars</span><span class="ind">LDGCB et LMPGCB réfractaire ou en rechute, après au moins deux lignes : réévaluation SMR et ASMR <span class="code"><a href="https://www.has-sante.fr/jcms/p_3262244/fr/yescarta-axicabtagene-ciloleucel" target="_blank" rel="noopener">· CT-19018</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a3">ASMR III</span></div></div><div class="ctx">Conclusions antérieures maintenues : ASMR III confirmée</div></div>
|
|
129
|
+
|
|
130
|
+
<div class="yr">2023</div>
|
|
131
|
+
<div class="ev"><div class="ev-top"><span class="date">18 janv.</span><span class="ind">Lymphome folliculaire réfractaire ou en rechute, après au moins trois lignes de traitement systémique <span class="code"><a href="https://www.has-sante.fr/jcms/p_3407522/fr/yescarta-axicabtagene-ciloleucel-lymphome-folliculaire" target="_blank" rel="noopener">· CT-19896</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a5">ASMR V</span></div></div><div class="ctx">Absence d'amélioration démontrée, données non comparatives, dans l'attente de l'étude ZUMA-22</div></div>
|
|
132
|
+
<div class="ev"><div class="ev-top"><span class="date">15 févr.</span><span class="ind">LDGCB et LHGCB ayant rechuté dans les 12 mois après la première ligne de chimio-immunothérapie, ou réfractaires (deuxième ligne) <span class="code"><a href="https://www.has-sante.fr/jcms/p_3419176/fr/yescarta-axicabtagene-ciloleucel-lymphome-diffus-a-grandes-cellules-b-ldgcb-et-lymphome-de-haut-grade-a-cellules-b-lhgcb" target="_blank" rel="noopener">· CT-20056</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a3">ASMR III</span></div></div><div class="ctx">Extension à la deuxième ligne, adossée à l'essai comparatif ZUMA-7 (supériorité en survie sans événement)</div></div>
|
|
133
|
+
<div class="ev"><div class="ev-top"><span class="date">06 sept.</span><span class="ind">LDGCB et LMPGCB réfractaire ou en rechute, après au moins deux lignes : réévaluation post-inscription (ZUMA-1, suivi 63 mois) <span class="code"><a href="https://www.has-sante.fr/jcms/p_3467529/fr/yescarta-axicabtagene-ciloleucel-lymphome-diffus-a-grandes-cellules-b-ldgcb-lymphome-mediastinal-primitif-a-grandes-cellules-b-lmpgcb" target="_blank" rel="noopener">· CT-20263</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a3">ASMR III</span></div></div><div class="ctx">Données à long terme confirmant l'appréciation : ASMR III maintenue</div></div>
|
|
134
|
+
|
|
135
|
+
<div class="yr">2026</div>
|
|
136
|
+
<div class="ev"><div class="ev-top"><span class="date">06 mai</span><span class="ind">LDGCB et LHGCB ayant rechuté dans les 12 mois après la première ligne, ou réfractaires (deuxième ligne) : réévaluation post-inscription (ZUMA-7, analyse finale) <span class="code"><a href="https://www.has-sante.fr/jcms/p_4052286/fr/yescarta-axicabtagene-ciloleucel-lymphome-diffus-a-grandes-cellules-b-ldgcb-et-lymphome-de-haut-grade-a-cellules-b-lhgcb" target="_blank" rel="noopener">· CT-21445</a></span></span><div class="badges"><span class="b b-smr">SMR Important</span><span class="b b-a3">ASMR III</span></div></div><div class="ctx">Bénéfice de survie globale désormais statistiquement significatif (HR = 0,73) : ASMR III maintenue. Dernière évaluation enregistrée</div></div>
|
|
137
|
+
|
|
138
|
+
</div>
|
|
139
|
+
</section>
|
|
140
|
+
|
|
141
|
+
<footer>
|
|
142
|
+
<div class="src"><i class="ph-fill ph-database"></i><div><strong>Source :</strong> avis de la HAS (Commission de la Transparence) et décisions d'accès précoce, consolidés et structurés dans <span class="db-tag">OIP Databank<sup>®</sup></span>. Les niveaux de SMR et d'ASMR proviennent de données déjà structurées, garantissant une lecture fidèle des avis officiels. Données arrêtées à juillet 2026.</div></div>
|
|
143
|
+
<div class="src"><i class="ph-fill ph-info"></i><div><strong>Périmètre :</strong> 6 avis de la Commission de la Transparence assortis d'un SMR et d'un ASMR (2018 à 2026), couvrant inscriptions, extensions d'indication et réévaluations post-inscription. L'accès précoce comprend 3 protocoles d'utilisation thérapeutique structurés (1 Pré-AMM, 2 Post-AMM), au sein de 6 décisions au catalogue.</div></div>
|
|
144
|
+
<div class="sig">TEKKARE<br>INSPIRED BY HEALTHCARE</div>
|
|
145
|
+
</footer>
|
|
146
|
+
|
|
147
|
+
</div>
|
|
148
|
+
</article>
|
|
149
|
+
</template>
|
|
150
|
+
|
|
151
|
+
<style scoped>
|
|
152
|
+
.mono {
|
|
153
|
+
--primary:#2100AD; --secondary:#B485FF; --darkest:#1E293B; --dark:#525670;
|
|
154
|
+
--medium:#878CA6; --light:#DBDEF0; --lightest:#F5F5F9; --bg:#F9F9FA; --white:#FFFFFF;
|
|
155
|
+
--success:#16A34A; --warning:#D97706; --error:#E53535;
|
|
156
|
+
--db:#EE5599;
|
|
157
|
+
}
|
|
158
|
+
*{box-sizing:border-box;margin:0;padding:0;}
|
|
159
|
+
sup{font-size:0.6em;vertical-align:super;line-height:0;}
|
|
160
|
+
.mono {font-family:'Figtree',Avenir,Arial,sans-serif;color:var(--darkest);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased;}
|
|
161
|
+
.wrap{max-width:920px;margin:0 auto;padding:0 24px 64px;}
|
|
162
|
+
em{font-family:'Caudex',Georgia,serif;font-style:normal;font-weight:700;color:var(--primary);}
|
|
163
|
+
|
|
164
|
+
.hero{background:url("https://rcd-media.com/skills/Background_Degrade_Blanc.png") center/cover no-repeat;padding:48px 24px 40px;border-bottom:1px solid var(--light);}
|
|
165
|
+
.hero-inner{max-width:920px;margin:0 auto;}
|
|
166
|
+
.hero img{height:32px;margin-bottom:28px;}
|
|
167
|
+
.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin-bottom:10px;}
|
|
168
|
+
.hero-top{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:26px;flex-wrap:wrap;}
|
|
169
|
+
.hero-date{font-family:'Figtree';font-size:12px;font-weight:600;color:var(--dark);white-space:nowrap;}
|
|
170
|
+
.eyebrow-row{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap;}
|
|
171
|
+
.ti-badge{display:inline-flex;align-items:center;gap:7px;font-family:'Figtree';font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:5px 13px;border-radius:4px;color:#fff;background:linear-gradient(90deg,#4DCCF7,#A06BF5,#FF5CF0);}
|
|
172
|
+
.eyebrow-row .eyebrow{margin-bottom:0;}
|
|
173
|
+
.produced{margin-top:20px;font-size:12px;font-weight:500;color:var(--dark);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
|
|
174
|
+
h1{font-family:'Figtree';font-weight:700;font-size:34px;color:var(--darkest);line-height:1.15;margin-bottom:8px;}
|
|
175
|
+
h1 .mol{font-family:'Caudex';font-weight:700;color:var(--primary);}
|
|
176
|
+
.sub{font-size:15px;color:var(--dark);max-width:640px;}
|
|
177
|
+
|
|
178
|
+
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:-28px auto 0;max-width:920px;padding:0 24px;position:relative;z-index:2;}
|
|
179
|
+
.kpi{background:var(--white);border:1px solid var(--light);border-radius:8px;padding:16px 18px;box-shadow:0 2px 8px rgba(30,41,59,0.06);}
|
|
180
|
+
.kpi .n{font-family:'Caudex';font-weight:700;font-size:34px;color:var(--primary);line-height:1;}
|
|
181
|
+
.kpi .l{font-size:11px;color:var(--dark);margin-top:6px;line-height:1.3;}
|
|
182
|
+
.kpi.good .n{color:var(--success);}
|
|
183
|
+
|
|
184
|
+
section{margin-top:44px;}
|
|
185
|
+
h2{font-family:'Figtree';font-weight:600;font-size:23px;color:var(--darkest);margin-bottom:6px;display:flex;align-items:center;gap:10px;}
|
|
186
|
+
h2 i{color:var(--primary);font-size:22px;}
|
|
187
|
+
.lead{font-size:14px;color:var(--dark);margin-bottom:20px;max-width:720px;}
|
|
188
|
+
|
|
189
|
+
.tl{position:relative;padding-left:26px;}
|
|
190
|
+
.tl::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:linear-gradient(180deg,#4DCCF7,#A06BF5,#FF5CF0);border-radius:2px;}
|
|
191
|
+
.yr{font-family:'Caudex';font-weight:700;font-size:15px;color:var(--primary);margin:22px 0 10px -26px;padding-left:26px;position:relative;}
|
|
192
|
+
.ev{position:relative;background:var(--white);border:1px solid var(--light);border-radius:8px;padding:12px 15px;margin-bottom:10px;box-shadow:0 2px 8px rgba(30,41,59,0.05);}
|
|
193
|
+
.ev::before{content:"";position:absolute;left:-22px;top:16px;width:9px;height:9px;border-radius:999px;background:var(--primary);border:2px solid var(--white);box-shadow:0 0 0 2px var(--light);}
|
|
194
|
+
.ev-top{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;}
|
|
195
|
+
.date{font-size:11px;font-weight:700;color:var(--medium);letter-spacing:.03em;min-width:78px;}
|
|
196
|
+
.ind{font-size:14px;font-weight:600;color:var(--darkest);flex:1;min-width:180px;}
|
|
197
|
+
.code{font-size:10px;color:var(--medium);font-family:'Figtree';white-space:nowrap;}
|
|
198
|
+
.code a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor;}
|
|
199
|
+
.code a:hover{color:var(--primary);border-bottom-color:var(--primary);}
|
|
200
|
+
.badges{display:flex;gap:6px;flex-wrap:wrap;}
|
|
201
|
+
.b{font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;letter-spacing:.02em;white-space:nowrap;}
|
|
202
|
+
.b-smr{background:var(--lightest);color:var(--dark);border:1px solid var(--light);}
|
|
203
|
+
.b-a3{background:#E7F6EE;color:#0B7A38;}
|
|
204
|
+
.b-a4{background:#FEF4E6;color:#9A5B04;}
|
|
205
|
+
.b-a5{background:#FCE9E9;color:#A11B1B;}
|
|
206
|
+
.b-na{background:var(--lightest);color:var(--medium);border:1px solid var(--light);}
|
|
207
|
+
.ctx{font-size:11px;color:var(--medium);margin-top:2px;}
|
|
208
|
+
|
|
209
|
+
.restrict{background:#FEF7EC;border:1px solid #F3D9B0;border-left:4px solid var(--warning);border-radius:8px;padding:18px 20px;margin-bottom:14px;}
|
|
210
|
+
.restrict h3{font-family:'Figtree';font-weight:700;font-size:15px;color:#9A5B04;margin-bottom:4px;display:flex;align-items:center;gap:8px;}
|
|
211
|
+
.restrict .meta{font-size:11px;color:var(--dark);margin-bottom:8px;}
|
|
212
|
+
.restrict p{font-size:13px;color:var(--darkest);}
|
|
213
|
+
.infobox{background:#EEF1FE;border:1px solid #C7D0F5;border-left:4px solid var(--primary);border-radius:8px;padding:18px 20px;margin-bottom:14px;}
|
|
214
|
+
.infobox h3{font-family:'Figtree';font-weight:700;font-size:15px;color:#183BA8;margin-bottom:4px;display:flex;align-items:center;gap:8px;}
|
|
215
|
+
.infobox p{font-size:13px;color:var(--darkest);}
|
|
216
|
+
|
|
217
|
+
.dist{background:var(--white);border:1px solid var(--light);border-radius:8px;padding:20px;box-shadow:0 2px 8px rgba(30,41,59,0.05);}
|
|
218
|
+
.row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
|
|
219
|
+
.row:last-child{margin-bottom:0;}
|
|
220
|
+
.row .lab{font-size:12px;font-weight:600;color:var(--dark);width:150px;}
|
|
221
|
+
.bar{flex:1;height:22px;background:var(--lightest);border-radius:4px;overflow:hidden;}
|
|
222
|
+
.fill{height:100%;border-radius:4px;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;color:var(--white);font-size:11px;font-weight:700;}
|
|
223
|
+
|
|
224
|
+
.takeaway{background:var(--white);border:1px solid var(--light);border-left:4px solid transparent;border-image:linear-gradient(180deg,#4DCCF7,#A06BF5,#FF5CF0) 1;border-radius:8px;padding:20px 22px;margin-top:36px;box-shadow:0 2px 8px rgba(30,41,59,0.06);}
|
|
225
|
+
.takeaway .tk-lab{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;display:flex;align-items:center;gap:8px;}
|
|
226
|
+
.takeaway p{font-size:14.5px;color:var(--darkest);line-height:1.6;}
|
|
227
|
+
.takeaway em{font-family:'Caudex',Georgia,serif;font-weight:700;color:var(--primary);font-style:normal;}
|
|
228
|
+
|
|
229
|
+
.price-wrap{background:var(--white);border:1px solid var(--light);border-radius:8px;padding:22px;box-shadow:0 2px 8px rgba(30,41,59,0.05);}
|
|
230
|
+
.price-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;}
|
|
231
|
+
.price-row:last-child{margin-bottom:0;}
|
|
232
|
+
.price-row .py{font-size:12px;font-weight:700;color:var(--dark);width:52px;}
|
|
233
|
+
.price-bar{flex:1;height:26px;background:var(--lightest);border-radius:4px;overflow:hidden;}
|
|
234
|
+
.price-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#2100AD,#B485FF);display:flex;align-items:center;justify-content:flex-end;padding-right:10px;color:#fff;font-size:11px;font-weight:700;}
|
|
235
|
+
.price-note{font-size:12px;color:var(--dark);margin-top:14px;}
|
|
236
|
+
.pill-sus{display:inline-block;font-size:10px;font-weight:700;padding:3px 9px;border-radius:4px;background:#EEF1FE;color:#183BA8;}
|
|
237
|
+
.sku-table{width:100%;border-collapse:collapse;margin-bottom:18px;font-size:12.5px;background:var(--white);border:1px solid var(--light);border-radius:8px;overflow:hidden;box-shadow:0 2px 8px rgba(30,41,59,0.05);}
|
|
238
|
+
.sku-table thead th{background:var(--lightest);color:var(--dark);font-weight:700;font-size:11px;letter-spacing:.02em;text-align:left;padding:10px 12px;border-bottom:1px solid var(--light);}
|
|
239
|
+
.sku-table td{padding:10px 12px;border-bottom:1px solid var(--light);color:var(--darkest);vertical-align:top;}
|
|
240
|
+
.sku-table tr:last-child td{border-bottom:none;}
|
|
241
|
+
.sku-table td.num{font-family:'Caudex',Georgia,serif;font-weight:700;color:var(--primary);white-space:nowrap;}
|
|
242
|
+
.sku-table td .rg{font-size:10px;font-weight:700;color:var(--dark);}
|
|
243
|
+
.sku-cap{font-size:11px;color:var(--medium);margin:-8px 0 20px;}
|
|
244
|
+
|
|
245
|
+
.disclaimer{max-width:920px;margin:16px auto 0;padding:0 24px;}
|
|
246
|
+
.disclaimer-inner{display:flex;gap:10px;align-items:flex-start;background:var(--lightest);border:1px solid var(--light);border-radius:6px;padding:11px 14px;font-size:11.5px;color:var(--dark);line-height:1.5;}
|
|
247
|
+
.disclaimer-inner i{color:var(--primary);font-size:15px;margin-top:1px;flex-shrink:0;}
|
|
248
|
+
|
|
249
|
+
.b-pre{background:#EDE7FF;color:#3B1E8F;}
|
|
250
|
+
.b-post{background:#EEF1FE;color:#183BA8;}
|
|
251
|
+
.b-ongoing{background:#FEF4E6;color:#9A5B04;}
|
|
252
|
+
.b-closed{background:var(--lightest);color:var(--dark);border:1px solid var(--light);}
|
|
253
|
+
.ap-stats{display:flex;gap:22px;flex-wrap:wrap;margin:4px 0 22px;}
|
|
254
|
+
.ap-stat{display:flex;flex-direction:column;gap:2px;}
|
|
255
|
+
.ap-stat .v{font-family:'Caudex',Georgia,serif;font-weight:700;font-size:26px;color:var(--primary);line-height:1;}
|
|
256
|
+
.ap-stat .k{font-size:11px;color:var(--dark);}
|
|
257
|
+
|
|
258
|
+
footer{margin-top:48px;padding-top:22px;border-top:1px solid var(--light);font-size:11px;color:var(--dark);}
|
|
259
|
+
footer .src{display:flex;align-items:flex-start;gap:8px;margin-bottom:14px;}
|
|
260
|
+
footer i{color:var(--primary);font-size:15px;margin-top:1px;}
|
|
261
|
+
.legal{display:flex;gap:11px;align-items:flex-start;margin-top:20px;padding:14px 16px;background:var(--lightest);border:1px solid var(--light);border-left:4px solid var(--primary);border-radius:6px;font-size:12px;color:var(--dark);line-height:1.55;}
|
|
262
|
+
.legal i{color:var(--primary);font-size:18px;margin-top:1px;flex-shrink:0;}
|
|
263
|
+
.legal strong{color:var(--darkest);}
|
|
264
|
+
.sig{font-size:10px;font-weight:700;letter-spacing:.12em;color:var(--medium);text-transform:uppercase;line-height:1.6;margin-top:18px;}
|
|
265
|
+
.db-tag{display:inline-block;font-size:10px;font-weight:700;padding:3px 8px;border-radius:4px;background:#FFF0F7;color:#991144;}
|
|
266
|
+
|
|
267
|
+
@media(max-width:640px){
|
|
268
|
+
.kpis{grid-template-columns:repeat(2,1fr);}
|
|
269
|
+
h1{font-size:26px;}
|
|
270
|
+
.row .lab{width:120px;}
|
|
271
|
+
}
|
|
272
|
+
</style>
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enveloppe des reponses Elasticsearch et forme des corps de requete.
|
|
3
|
+
*
|
|
4
|
+
* Deux choix assumes, pour coller a ce que le code fait deja plutot qu'a ce
|
|
5
|
+
* que le cluster renvoie au pire :
|
|
6
|
+
*
|
|
7
|
+
* - `hits` et `aggregations` ne sont pas optionnels. Les pages lisent
|
|
8
|
+
* `res.hits.hits` et `res.aggregations[...]` sans garde depuis toujours ;
|
|
9
|
+
* les rendre optionnels ici n'aurait pas ajoute de garde, seulement des
|
|
10
|
+
* centaines de `!`. Une reponse en erreur passe par la branche `error` du
|
|
11
|
+
* composable, pas par `data`.
|
|
12
|
+
* - l'interieur des clauses de requete reste libre (`Record<string, any>`).
|
|
13
|
+
* Les pages construisent leurs requetes par mutation
|
|
14
|
+
* (`query.query.bool.must[0].bool.should.push(...)`) : typer la grammaire
|
|
15
|
+
* complete du DSL casserait ces constructions sans rien attraper d'utile.
|
|
16
|
+
* Ce qui est type, c'est l'enveloppe : quels champs de premier niveau
|
|
17
|
+
* existent, et ce qui revient.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/** Document brut d'un index qui n'a pas (encore) de type dedie. */
|
|
21
|
+
export type EsUnknownDoc = Record<string, any>;
|
|
22
|
+
|
|
23
|
+
export interface EsTotal {
|
|
24
|
+
value: number;
|
|
25
|
+
relation: "eq" | "gte";
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface EsHit<TDoc = EsUnknownDoc> {
|
|
29
|
+
_index: string;
|
|
30
|
+
_id: string;
|
|
31
|
+
_score: number | null;
|
|
32
|
+
_source: TDoc;
|
|
33
|
+
sort?: Array<string | number | null>;
|
|
34
|
+
highlight?: Record<string, string[]>;
|
|
35
|
+
inner_hits?: Record<string, { hits: EsHits<TDoc> }>;
|
|
36
|
+
fields?: Record<string, unknown[]>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export interface EsHits<TDoc = EsUnknownDoc> {
|
|
40
|
+
total: EsTotal;
|
|
41
|
+
max_score: number | null;
|
|
42
|
+
hits: Array<EsHit<TDoc>>;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Bucket d'aggregation. Les sous-aggregations restent libres. */
|
|
46
|
+
export interface EsBucket<TKey = string> {
|
|
47
|
+
key: TKey;
|
|
48
|
+
key_as_string?: string;
|
|
49
|
+
doc_count: number;
|
|
50
|
+
[subAggregation: string]: any;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export interface EsTermsAggregation<TKey = string> {
|
|
54
|
+
doc_count_error_upper_bound?: number;
|
|
55
|
+
sum_other_doc_count?: number;
|
|
56
|
+
buckets: Array<EsBucket<TKey>>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export interface EsValueAggregation {
|
|
60
|
+
value: number | null;
|
|
61
|
+
value_as_string?: string;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Les aggregations sont nommees par la requete : leur forme ne peut pas etre
|
|
66
|
+
* connue a l'avance. Une page qui veut du type fort passe sa propre forme en
|
|
67
|
+
* second parametre de `EsResponse`.
|
|
68
|
+
*/
|
|
69
|
+
export type EsAggregations = Record<string, any>;
|
|
70
|
+
|
|
71
|
+
export interface EsResponse<
|
|
72
|
+
TDoc = EsUnknownDoc,
|
|
73
|
+
TAggregations = EsAggregations,
|
|
74
|
+
> {
|
|
75
|
+
took: number;
|
|
76
|
+
timed_out: boolean;
|
|
77
|
+
_shards?: {
|
|
78
|
+
total: number;
|
|
79
|
+
successful: number;
|
|
80
|
+
skipped?: number;
|
|
81
|
+
failed: number;
|
|
82
|
+
};
|
|
83
|
+
hits: EsHits<TDoc>;
|
|
84
|
+
aggregations: TAggregations;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/** Clause de requete, d'aggregation ou de tri : contenu libre. */
|
|
88
|
+
export type EsQueryClause = Record<string, any>;
|
|
89
|
+
export type EsAggregationsSpec = Record<string, any>;
|
|
90
|
+
export type EsSort = Array<string | Record<string, any>> | Record<string, any>;
|
|
91
|
+
|
|
92
|
+
export interface EsSearchBody {
|
|
93
|
+
from?: number;
|
|
94
|
+
size?: number;
|
|
95
|
+
_source?:
|
|
96
|
+
boolean | string | string[] | { includes?: string[]; excludes?: string[] };
|
|
97
|
+
query?: EsQueryClause;
|
|
98
|
+
aggs?: EsAggregationsSpec;
|
|
99
|
+
aggregations?: EsAggregationsSpec;
|
|
100
|
+
sort?: EsSort;
|
|
101
|
+
track_total_hits?: boolean | number;
|
|
102
|
+
highlight?: Record<string, any>;
|
|
103
|
+
collapse?: {
|
|
104
|
+
field: string;
|
|
105
|
+
inner_hits?: any;
|
|
106
|
+
max_concurrent_group_searches?: number;
|
|
107
|
+
};
|
|
108
|
+
runtime_mappings?: Record<string, any>;
|
|
109
|
+
search_after?: Array<string | number | null>;
|
|
110
|
+
post_filter?: EsQueryClause;
|
|
111
|
+
min_score?: number;
|
|
112
|
+
script_fields?: Record<string, any>;
|
|
113
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documents des index agences et avis : ANSM, HAS (avis de marque, P.U.T,
|
|
3
|
+
* indications LES/APAC), PNDS, MITM (BDPM).
|
|
4
|
+
*
|
|
5
|
+
* Ces documents portent leurs libelles en paire francais/anglais, et le code
|
|
6
|
+
* du portail va les chercher en construisant la cle a l'execution
|
|
7
|
+
* (`source[`${base}_${locale}`]`, cf. `useHubrResourceKinds`). Une signature
|
|
8
|
+
* d'index ouverte est donc necessaire ici : sans elle, toute lecture par
|
|
9
|
+
* locale casserait. Les champs nommes restent typés et documentent ce que
|
|
10
|
+
* l'app lit vraiment.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/** Un avis de la chronologie HAS d'un groupe de marque. */
|
|
14
|
+
export interface HasBrandHistoryEntry {
|
|
15
|
+
has_code?: string;
|
|
16
|
+
brand?: string;
|
|
17
|
+
company?: string;
|
|
18
|
+
molecule?: string;
|
|
19
|
+
atc5_code?: string;
|
|
20
|
+
document_type?: string;
|
|
21
|
+
opinion_type?: string;
|
|
22
|
+
decision_date?: string;
|
|
23
|
+
security_start_date?: string;
|
|
24
|
+
security_end_date?: string;
|
|
25
|
+
alert_details?: string;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Document de `ope_block402_fr__drugs__brand__has`. */
|
|
29
|
+
export interface HasBrandDoc {
|
|
30
|
+
brand_group?: string;
|
|
31
|
+
brand?: string | string[];
|
|
32
|
+
molecule?: string | string[];
|
|
33
|
+
atc5_code?: string;
|
|
34
|
+
owner_regroup?: string;
|
|
35
|
+
last_opinion_date?: string;
|
|
36
|
+
brand_history?: HasBrandHistoryEntry[];
|
|
37
|
+
[field: string]: any;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/** Document de `ope_block402_fr__drugs__put__has` (acces precoce). */
|
|
41
|
+
export interface HasPutDoc {
|
|
42
|
+
brand?: string | string[];
|
|
43
|
+
dci?: string;
|
|
44
|
+
aap_type_fr?: string;
|
|
45
|
+
aap_type_en?: string;
|
|
46
|
+
authorization_date?: string;
|
|
47
|
+
start_date?: string;
|
|
48
|
+
indication?: string | string[];
|
|
49
|
+
objective_fr?: string;
|
|
50
|
+
objective_en?: string;
|
|
51
|
+
therapeutic_area_fr?: string;
|
|
52
|
+
therapeutic_area_en?: string;
|
|
53
|
+
status_fr?: string;
|
|
54
|
+
status_en?: string;
|
|
55
|
+
[field: string]: any;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Document de `ope_block402_fr__drugs__indication__search__has` (LES / APAC). */
|
|
59
|
+
export interface HasIndicationDoc {
|
|
60
|
+
card_id?: string;
|
|
61
|
+
brand?: string | string[];
|
|
62
|
+
indication?: string | string[];
|
|
63
|
+
indication_fr?: string;
|
|
64
|
+
indication_en?: string;
|
|
65
|
+
indication_label_fr?: string;
|
|
66
|
+
french_label?: string;
|
|
67
|
+
label_fr?: string;
|
|
68
|
+
atc5_fr?: string;
|
|
69
|
+
owner_regroup?: string;
|
|
70
|
+
drug_type?: string;
|
|
71
|
+
source?: string;
|
|
72
|
+
statut?: string;
|
|
73
|
+
amm_date?: string;
|
|
74
|
+
start_date?: string;
|
|
75
|
+
end_date?: string;
|
|
76
|
+
end_date_contract?: string;
|
|
77
|
+
end_date_treatment?: string;
|
|
78
|
+
end_motive?: string;
|
|
79
|
+
is_oncology?: boolean;
|
|
80
|
+
is_rare_disease?: boolean;
|
|
81
|
+
[field: string]: any;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/** Document de `ope_block402_fr__drugs__pathology_protocol__pnds`. */
|
|
85
|
+
export interface PndsDoc {
|
|
86
|
+
protocol_id?: string;
|
|
87
|
+
protocol_date?: string;
|
|
88
|
+
pathology_fr?: string;
|
|
89
|
+
pathology_en?: string;
|
|
90
|
+
[field: string]: any;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Document de `ope_block402_fr__drugs__mitm__bdpm`. */
|
|
94
|
+
export interface MitmDoc {
|
|
95
|
+
cis_code?: string;
|
|
96
|
+
cis_label?: string;
|
|
97
|
+
brand?: string | string[];
|
|
98
|
+
molecule?: string | string[];
|
|
99
|
+
owner_regroup?: string;
|
|
100
|
+
atc4_code?: string;
|
|
101
|
+
atc5_code?: string;
|
|
102
|
+
atc4_french_code_label?: string;
|
|
103
|
+
atc4_english_code_label?: string;
|
|
104
|
+
atc5_french_code_label?: string;
|
|
105
|
+
atc5_english_code_label?: string;
|
|
106
|
+
presentations?: any[];
|
|
107
|
+
update_date?: string;
|
|
108
|
+
[field: string]: any;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Une ligne d'historique d'avis HAS, telle que les ecrans du portail la
|
|
113
|
+
* lisent.
|
|
114
|
+
*
|
|
115
|
+
* Un meme tableau melange les familles d'avis (indication, acces, population,
|
|
116
|
+
* evaluation, alerte, economique) : les champs d'une famille sont absents des
|
|
117
|
+
* autres, d'ou l'optionnalite generale. Les paires `_en` portent la version
|
|
118
|
+
* anglaise du libelle.
|
|
119
|
+
*/
|
|
120
|
+
export interface HasOpinionRow {
|
|
121
|
+
has_code?: string;
|
|
122
|
+
opinion_type?: string;
|
|
123
|
+
brand?: string | string[];
|
|
124
|
+
brands?: string[];
|
|
125
|
+
brand_group?: string;
|
|
126
|
+
company?: string;
|
|
127
|
+
cis_code?: string;
|
|
128
|
+
molecule?: string | string[];
|
|
129
|
+
molecules?: string[];
|
|
130
|
+
atc?: string | string[];
|
|
131
|
+
atc5_code?: string;
|
|
132
|
+
decision_date?: string;
|
|
133
|
+
security_start_date?: string;
|
|
134
|
+
security_end_date?: string;
|
|
135
|
+
start?: string;
|
|
136
|
+
end?: string;
|
|
137
|
+
essential?: string;
|
|
138
|
+
essential_en?: string;
|
|
139
|
+
nature_of_request?: string;
|
|
140
|
+
nature_of_request_en?: string;
|
|
141
|
+
nature_of_request_regroup?: string;
|
|
142
|
+
nature_of_request_regroup_en?: string;
|
|
143
|
+
disease_name?: string;
|
|
144
|
+
disease_name_en?: string;
|
|
145
|
+
theme?: string;
|
|
146
|
+
theme_en?: string;
|
|
147
|
+
details?: any;
|
|
148
|
+
/** Niveaux SMR / ASMR, chacun avec son libelle francais et anglais. */
|
|
149
|
+
smr?: Array<{ type?: string; type_en?: string }> | null;
|
|
150
|
+
asmr?: Array<{ type?: string; type_en?: string }> | null;
|
|
151
|
+
[field: string]: any;
|
|
152
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Documents des repertoires produits.
|
|
3
|
+
*
|
|
4
|
+
* Les drapeaux de couverture (`is_medicam`, `is_sus`...) valent la chaine
|
|
5
|
+
* "0" ou "1", pas un booleen : c'est ce que renvoie le cluster, et le code de
|
|
6
|
+
* perimetre compare a "1".
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
/** Drapeau de couverture d'une source. */
|
|
10
|
+
export type DirectoryFlag = "0" | "1";
|
|
11
|
+
|
|
12
|
+
/** Document de `ope_block402_fr__drugs__brand_directory`. */
|
|
13
|
+
export interface BrandDirectoryDoc {
|
|
14
|
+
brand: string;
|
|
15
|
+
owner_regroup?: string;
|
|
16
|
+
atc4_code?: string;
|
|
17
|
+
atc5_code?: string;
|
|
18
|
+
atc4?: string;
|
|
19
|
+
atc5?: string;
|
|
20
|
+
molecule?: string;
|
|
21
|
+
is_medicam?: DirectoryFlag;
|
|
22
|
+
is_openmedic?: DirectoryFlag;
|
|
23
|
+
is_retail?: DirectoryFlag;
|
|
24
|
+
is_sus?: DirectoryFlag;
|
|
25
|
+
is_retrocession?: DirectoryFlag;
|
|
26
|
+
is_outpatient?: DirectoryFlag;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** Document de `ope_block402_fr__drugs__drug_directory`. */
|
|
30
|
+
export interface DrugDirectoryDoc {
|
|
31
|
+
code: string;
|
|
32
|
+
code_label: string;
|
|
33
|
+
brand?: string;
|
|
34
|
+
owner?: string;
|
|
35
|
+
owner_regroup?: string;
|
|
36
|
+
cip13?: string;
|
|
37
|
+
cip13_code?: string;
|
|
38
|
+
atc1?: string;
|
|
39
|
+
atc2?: string;
|
|
40
|
+
atc3?: string;
|
|
41
|
+
atc4?: string;
|
|
42
|
+
atc5?: string;
|
|
43
|
+
atc1_code?: string;
|
|
44
|
+
atc2_code?: string;
|
|
45
|
+
atc3_code?: string;
|
|
46
|
+
atc4_code?: string;
|
|
47
|
+
atc5_code?: string;
|
|
48
|
+
label?: string;
|
|
49
|
+
is_medicam?: DirectoryFlag;
|
|
50
|
+
is_openmedic?: DirectoryFlag;
|
|
51
|
+
is_outpatient?: DirectoryFlag;
|
|
52
|
+
is_sus?: DirectoryFlag;
|
|
53
|
+
is_retrocession?: DirectoryFlag;
|
|
54
|
+
}
|