Liens (jointures)

Généralités

Dans chaque étape des DataBlocksLogo GenericsData (module GenericsData), un ou plusieurs liens (jointures) peuvent être définis.

Un lien sert à importer automatiquement des colonnes (et leurs lignes) provenant d’autres Entités ou DataBlocks, à condition que ces données répondent à un ou plusieurs critères spécifiés par l’utilisateur.

Par exemple, un lien peut servir à obtenir pour chaque patient d’un DataBlock donné, la liste de ses Actes Médicaux contenus dans la colonne "Actes Médicaux" d’une Entité "Dossiers Patients".

Un tel lien récupère uniquement les lignes de la colonne Actes médicaux de l’Entité dont la valeur dans la colonne IPP (identifiant permanent du patient) figure déjà dans Identifiant Patient du DataBlock :

DataBlock "Entrées/Sorties Patients"

Identifiant Patient Date Entrée Date Sortie

1001

2025-06-01

2025-06-10

1002

2025-06-03

2025-06-08

1003

2025-06-05

2025-06-12

Entité "Dossiers Patients"

IPP Actes Médicaux

1001

IRM cérébrale, Bilan sanguin

1002

Scanner thoracique

1004

ECG, Consultation cardiologique

Résultat après application du lien

Identifiant Patient Date Entrée Date Sortie Actes Médicaux

1001

2025-06-01

2025-06-10

IRM cérébrale, Bilan sanguin

1002

2025-06-03

2025-06-08

Scanner thoracique

1003

2025-06-05

2025-06-12

null

Principes

La création d’un lien passe par la configuration :

  • d’un bloc de données (Entité ou DataBlock) auquel sera lié son DataBlock,

  • des colonnes du bloc de données qui seront ajoutées au DataBlock courant,

  • du type de jointure utilisé pour la récupération des lignes du bloc de données lié

  • des conditions de récupération de ces lignes liées ensemble par l’opérateur logique "ET".

Les conditions sont formulées à partir d’une colonne du DataBlock courant (ou une constante) et d’une colonne du bloc de données lié (ou une constante) dont les valeurs seront comparées par un opérateur (Egale, Différent, Inférieur, Supérieur…​).

Une case à cocher jouxtant les champs de sélection des colonnes d’une condition permet de les transformer en champs de saisie d’une constante, si besoin.

Types de jointures

La définition du type de jointure permet de spécifier la manière dont les données de deux sources seront combinées pour fournir le jeu de données résultant du lien, en fonction de la présence ou non de correspondances entre leurs valeurs.

Les sous-sections suivantes présentent les différents types de jointure disponibles et leur fonctionnement. L’exemple de lien de l’introduction est repris et le résultat du lien présenté en fonction du type de jointure sélectionné par l’utilisateur.

Dans chacun des exemples ci-dessous, toutes les colonnes de l’Entité cible sont récupérées quand c’est possible. Le critère du lien est : Identifiant Patient Egale IPP. Rappel des blocs de données liées :

DataBlock source "Entrées/Sorties Patients"
Identifiant Patient Date Entrée Date Sortie

1001

2025-06-01

2025-06-10

1002

2025-06-03

2025-06-08

1003

2025-06-05

2025-06-12

Entité "Dossiers Patients"
IPP Actes Médicaux

1001

IRM cérébrale, Bilan sanguin

1002

Scanner thoracique

1004

ECG, Consultation cardiologique

Jointure de type ANTI

Spécificité : conserve uniquement les lignes du DataBlock source sans correspondance dans l’entité cible.

C’est-à-dire que dans un premier temps, les lignes du DataBlock source qui respectent les critères du lien sont sélectionnées avant d’être évincées du résultat définitif du lien. Aucune colonne ou ligne de la cible n’est jointe.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie

1003

2025-06-05

2025-06-12

Jointure de type INNER

Spécificité : renvoie uniquement les lignes possédant une correspondance dans les deux jeux de données.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie IPP Actes Médicaux Date Dernier Séjour

1001

2025‑06‑01

2025‑06‑10

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1002

2025‑06‑03

2025‑06‑08

1002

Scanner thoracique

2025‑05‑30

Jointure de type LEFT

Spécificité : conserve toutes les lignes du DataBlock source. Les colonnes de la cible sont ajoutées lorsque la condition est satisfaite ; sinon, elles restent vides.

Par défaut, les liens s’effectuent avec le type de jointure Left.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie IPP Actes Médicaux Date Dernier Séjour

1001

2025‑06‑01

2025‑06‑10

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1002

2025‑06‑03

2025‑06‑08

1002

Scanner thoracique

2025‑05‑30

1003

2025‑06‑05

2025‑06‑12

null

null

null

Jointure de type RIGHT

Spécificité : conserve toutes les lignes du bloc de données cible. Les colonnes du DataBlock source sont ajoutées lorsqu’une correspondance existe ; sinon, elles restent vides.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie IPP Actes Médicaux Date Dernier Séjour

1001

2025‑06‑01

2025‑06‑10

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1002

2025‑06‑03

2025‑06‑08

1002

Scanner thoracique

2025‑05‑30

null

null

null

1004

ECG; Consultation cardiologique

2025‑06‑07

Jointure de type OUTER

Spécificité : renvoie l’union des deux jeux de données. Chaque ligne sans correspondance est complétée par des valeurs nulles pour les colonnes manquantes.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie IPP Actes Médicaux Date Dernier Séjour

1001

2025‑06‑01

2025‑06‑10

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1002

2025‑06‑03

2025‑06‑08

1002

Scanner thoracique

2025‑05‑30

1003

2025‑06‑05

2025‑06‑12

null

null

null

null

null

null

1004

ECG; Consultation cardiologique

2025‑06‑07

Jointure de type CROSS

Spécificité : S’applique automatiquement en l’absence de critères. Renvoie le produit cartésien des deux jeux de données. Chaque ligne du DataBlock source est associée à toutes les lignes de l’entité cible, sans condition de correspondance.

Quand il y a un critère et que le type CROSS est choisi par l’utilisateur, c’est le type INNER qui est automatiquement appliqué car CROSS ne concerne que les liens n’ayant pas de critères.ê

Résultat d’une jointure de type CROSS (produit cartésien) dans notre exemple : 3 lignes × 3 lignes = 9 lignes.

Résultat après application de ce type de jointure dans le lien exemple
Identifiant Patient Date Entrée Date Sortie IPP Actes Médicaux Date Dernier Séjour

1001

2025‑06‑01

2025‑06‑10

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1001

2025‑06‑01

2025‑06‑10

1002

Scanner thoracique

2025‑05‑30

1001

2025‑06‑01

2025‑06‑10

1004

ECG; Consultation cardiologique

2025‑06‑07

1002

2025‑06‑03

2025‑06‑08

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1002

2025‑06‑03

2025‑06‑08

1002

Scanner thoracique

2025‑05‑30

1002

2025‑06‑03

2025‑06‑08

1004

ECG; Consultation cardiologique

2025‑06‑07

1003

2025‑06‑05

2025‑06‑12

1001

IRM cérébrale; Bilan sanguin

2025‑05‑22

1003

2025‑06‑05

2025‑06‑12

1002

Scanner thoracique

2025‑05‑30

1003

2025‑06‑05

2025‑06‑12

1004

ECG; Consultation cardiologique

2025‑06‑07