Linkr
Accueil Ressources Outils Documentation Blog Démo
EN
  • Qu'est-ce que Linkr ?
  • Modes de déploiement
  • Démarrage rapide
  • Installation locale
  • Avec Docker
  • Installation manuelle
  • Client-only
  • Votre premier projet
  • Linkr dans un EDS
  • Espaces de travail et projets
  • Le pipeline de données
  • Entités et partage
  • Versioning et collaboration
  • Vue d'ensemble
  • Projets
  • Wiki
  • Plugins
  • Membres et rôles
  • Paramètres
  • Schémas
  • Obtenir et explorer
  • Mapping
  • Bases de données
  • Sous-bases dérivées
  • Qualité des données
  • Catalogue de données
  • Construire et publier
  • Anonymiser
  • Collections de scripts SQL
  • Pipelines ETL
  • Construire et exécuter
  • Générer les scripts
  • Présentation
  • Projets d'alignement
  • Vue d'ensemble
  • Concepts cibles
  • Éditeur d'alignements
  • Suggestions
  • Agent IA
  • Évaluation
  • Export
  • Vue d'ensemble
  • Bases de données
  • Concepts
  • Cohortes
  • Construire
  • Résultats, SQL et rapport
  • Données individuelles
  • Pipeline
  • Jeux de données
  • IDE
  • Applications web
  • Versioning
  • Vue d'ensemble
  • Onglets et widgets
  • Widgets intégrés
  • Widgets d'analyse
  • Cartes de contrôle (SPC)
  • Questionnaires et eCRF
  • Code R et Python
  • Filtres, paramètres et export
  • Vue d'ensemble
  • Mode présentation
  • Exporter un rapport
  • Agents
  • Serveur MCP
  • Skills
  • Import et export
  • Versioning git
  • Catalogue communautaire
  • Publier du contenu
  • Installation en production
  • Configuration
  • Authentification et permissions
  • Fichiers sur le serveur
  • Sauvegarde et restauration
  • Contribuer au code
  • Glossaire
  • Raccourcis clavier
  • Notes de version
Documentation Entrepôt de données Construire et publier

Construire et publier un catalogue

Choisir la base, les variables, les comptages et les croisements, calculer, décrire en Health-DCAT-AP, puis publier une page autonome ou la déployer sur GitLab / GitHub Pages.

En résumé

Un catalogue de données se construit dans l’ordre de ses onglets : la base décrite, les variables et les croisements à compter, le calcul, l’anonymisation, les métadonnées Health-DCAT-AP, puis la publication — une page HTML à télécharger, une archive complète, ou un site déployé depuis git.

Client Disponible en mode client-only — tout fonctionne dans le navigateur, sans backend. Backend Disponible avec le backend FastAPI.

Un catalogue se crée depuis la page Catalogue de données de l’entrepôt, avec Nouveau catalogue. Il se règle ensuite onglet par onglet : Aperçu, Configuration, Anonymisation, Health-DCAT-AP et Publier.

1. Choisir la base

Un catalogue décrit une base, choisie à la création puis modifiable dans l’onglet Aperçu.

La base doit avoir un schéma

Sans mapping de schéma, Linkr ne sait pas ce qu’est un patient ni un séjour : il n’y a rien à compter. Voir Schémas.

2. Choisir les variables et les comptages

Dans l’onglet Configuration, le bloc Variables fixe ce selon quoi le catalogue peut être ventilé, et ce que compte chaque cellule. Chaque variable s’active par son interrupteur ; activée, elle a ses propres totaux et déplie ses options.

demo.linkr.interhop.org
Variables
Comptages
PatientsHospitalisationsSéjours en unité
PériodeAnnée
Granularité
Année
Tous les
1
an(s)
Tranche d'âge10 tranches d'âge
Tranches
10 ans
Ajouter une borne
Ajouter
0102030405060708090+∞
Genre
ServiceLes 12 plus gros, le reste en Autres
Niveau de service
Unité de soins (passages)
Regroupement
Top N
Garder les
12
services ayant le plus de patients ; les autres deviennent « Autres services ».
ConceptCompté par concept
Colonne catégorie
domain_id
Colonne sous-catégorie
concept_class_id
Compter par
Concept
Concepts croisés
Les N ayant le plus de patients
100
Le bloc Variables de l'onglet Configuration : la ligne Comptages, puis une ligne par variable avec ses options. Cliquez sur les interrupteurs et les cases pour les essayer.

Les comptages

La ligne Comptages fixe ce que compte chaque cellule. Les Patients sont toujours comptés — des patients distincts : un patient vu sur deux périodes compte une fois dans chacune. On peut y ajouter les Hospitalisations et les Séjours en unité ; avec un concept, une hospitalisation compte quand un enregistrement du concept tombe pendant ce séjour. Les enregistrements — les lignes d’événements — sont comptés dès que la variable concept fait partie d’un croisement.

Chaque comptage ajouté prend du temps et de la mémoire sur un gros entrepôt : ne cochez que ce que les lecteurs du catalogue liront.

Les variables

Période

Le début de l’hospitalisation ou, croisée avec les concepts, la date de l’événement.

Granularité au mois, au trimestre ou à l’année, et Tous les pour des pas plus larges — tous les 5 ans, par exemple.

Tranche d'âge

L’âge à l’hospitalisation ou à l’événement, d’après la date de naissance ou à défaut l’année de naissance.

Des Tranches prédéfinies — 5, 10 ou 20 ans, pédiatrique, clinique — ou vos propres bornes : 18 et 65 donnent moins de 18 ans, 18–64 ans et 65 ans et plus.

Genre

D’après la colonne genre de la table patients, telle que mappée dans le schéma. Sans option.

Service

Le Niveau de service : l’Unité de soins (passages) de chaque passage, ou le Type de visite.

Le Regroupement garde chaque service tel quel (Tous), ne garde que les N plus gros, le reste devenant « Autres services » (Top N), ou réunit des services dans des groupes nommés (Groupes) — le moyen le plus sûr de garder assez de patients par cellule.

Concept

Chaque concept clinique trouvé dans les tables d’événements — mesures, médicaments, diagnostics… La Colonne catégorie et la Colonne sous-catégorie classent la liste des concepts (en OMOP, typiquement le domaine et la classe) : c’est ce qui rend l’inventaire navigable plutôt qu’une liste de dix mille codes.

Compter par regroupe par Catégorie ou Sous-catégorie plutôt que concept par concept, et Concepts croisés ne croise que les N concepts ayant le plus de patients.

3. Choisir les croisements

Un croisement est un tableau qui compte plusieurs variables ensemble — concept × période, service × tranche d’âge… Le bloc Croisements les propose en trois groupes : Une variable, Deux variables — une grille où chaque case croise la variable de sa ligne et celle de sa colonne — et Trois variables.

demo.linkr.interhop.org
CroisementsEstimer les rendements
Une variableTout sélectionner/Aucun
Deux variablesTout sélectionner/Aucun
Tranche d'âgeGenreServiceConcept
Période
Tranche d'âge
Genre
Service
Trois variablesTout sélectionner/Aucun
…
≥ 90 %60–90 %< 60 %part des cellules non vides d'au moins 10 patients
Le bloc Croisements, après « Estimer les rendements » : chaque croisement affiche la part de ses cellules qui seraient publiées. Cliquez sur une case pour le cocher ou le décocher.

Plus un croisement a de variables, plus ses cellules sont petites, et plus il y en a qui tombent sous le seuil d’anonymisation. Estimer les rendements calcule, pour chaque croisement, la part de cellules non vides qui seraient publiées — en vert au-delà de 90 %, en ambre entre 60 et 90 %, en rouge en dessous. Un croisement dont presque tout serait masqué n’apprend rien à personne, et vaut mieux décoché.

Une variable décochée dans Une variable reste comptée seule pour ordonner ses valeurs, mais n’est pas publiée seule — le genre, par exemple, peut n’être intéressant que croisé avec l’âge.

4. Calculer

Calculer le catalogue parcourt la base et compte, étape par étape — concepts, totaux, classement des services et des concepts, puis chaque croisement. Sur un entrepôt volumineux, c’est long : le calcul continue si vous changez d’onglet, et il est interruptible — Mettre en pause, Reprendre, ou Tout recalculer depuis le début. La configuration est verrouillée tant qu’un calcul est en cours ou en pause.

Le résultat est conservé avec sa date et sa durée. Une fois le catalogue calculé, Recalculer relance le calcul avec la configuration du moment, et Supprimer efface les résultats en gardant la configuration.

Changer de base invalide le calcul

Les comptages décrivent une base précise. Si vous en changez, les résultats existants ne veulent plus rien dire : il faut relancer le calcul.

5. Anonymiser

C’est l’étape qui rend la publication acceptable. Dans l’onglet Anonymisation, on fixe un nombre minimum de patients par cellule : en dessous, la cellule est masquée. Linkr masque aussi les cellules qui permettraient de retrouver une cellule masquée par soustraction, peut perturber légèrement les effectifs publiés, et un audit vérifie que rien ne se déduit des fichiers publiés.

Tout cela est détaillé dans Anonymiser un catalogue.

6. Décrire le jeu de données

L’onglet Health-DCAT-AP rassemble les métadonnées du catalogue : éditeur, contacts, licence, contenu de santé, couverture temporelle, accès. Le compteur de chaque section indique combien de champs obligatoires restent à remplir ; Remplissage auto remplit les champs vides à partir de ce que Linkr sait déjà (nom, description, base…), et Obligatoires seulement masque le reste. La section Généré est construite depuis la base et les résultats calculés — il n’y a rien à y saisir, sauf l’emplacement des fichiers publiés.

Health-DCAT-AP, en deux mots

C’est le vocabulaire européen de description des jeux de données de santé, prévu par le règlement sur l’Espace européen des données de santé. L’utiliser signifie qu’un portail de données peut moissonner votre catalogue et l’afficher à côté d’autres, sans conversion.

Publier

L’onglet Publier montre d’abord un Aperçu de la page telle qu’elle sera publiée. Montrer les valeurs masquées y affiche, pour vous seul, l’effectif que cache chaque cellule masquée — les fichiers téléchargés et déployés ne contiennent jamais ces nombres.

La partie Export propose deux formats, dans la Langue de la page choisie :

Page du catalogue — HTML

Un seul fichier, qui s’ouvre dans n’importe quel navigateur, hors ligne.

Ses données sont dedans, rien d’autre à héberger. Les métadonnées Health-DCAT-AP y sont embarquées en JSON-LD, lisibles par un moteur de recherche ou un portail de données.

Publication complète — ZIP

Tout ce qu’il faut à un site public.

catalog.html, concepts.csv (une ligne par concept), un CSV par croisement dans crossings/ — cellules masquées laissées vides avec leur statut — et metadata.jsonld. La forme à retenir pour alimenter un catalogue institutionnel.

Déployer avec GitLab / GitHub Pages

Plutôt que télécharger, on peut publier la page automatiquement depuis le dépôt git du catalogue. Liez d’abord le catalogue à un dépôt dans l’onglet Versioning (voir Versioning git), choisissez l’Hébergement, puis Activer le déploiement : Linkr ajoute au dépôt les fichiers du site et un fichier de CI qui les déploie à chaque push. L’adresse prévue du site peut servir d’URL au catalogue publié, dans ses métadonnées.

Après un nouveau calcul, Mettre à jour le site publié, puis poussez depuis l’onglet Versioning.

Pour aller plus loin

  • Anonymiser un catalogue — seuil, masquage secondaire, perturbation et audit, avant toute publication.
  • Catalogue de données — à quoi sert un catalogue, et ce que lit le visiteur de la page publiée.
  • Schémas — indispensable pour que le calcul sache quoi compter.
  • Versioning git — lier le catalogue à un dépôt, pour le déployer.
PrécédentCatalogue de donnéesSuivantAnonymiser

Produit

  • Accueil
  • Démo

Ressources

  • Documentation
  • Ressources
  • Outils
  • Blog

Communauté

  • Code source Framagit
  • Code source Github

À propos

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · GPLv3 (logiciel)