Composantes

Infrastructure basée sur OpenShift

L’ensemble de la plateforme PARADIM est déployée sur une grappe de calcul opérant sur la plateforme-service OpenShift de RedHat. Cette plateforme rend accessible un système d’orchestration d’applications déployées sous la forme de conteneurs.

Elle offre des possibilités de mises à l’échelle et une gestion simplifiée de la réseautique entre les applications. Comme elle est basée sur Kubernetes, PARADIM a des scripts de déploiement qui n’utilisent pas de fonctionnalités qui sont uniques à OpenShift.

Afin de construire les images des conteneurs applicatifs et les déployer sur OpenShift, PARADIM utilise les capacités de déploiement et d’intégration en continu de GitLab.

Plateforme OpenShift

Stockage des données avec Ceph, PostgreSQL et OpenSearch

Toutes les métadonnées de la plateforme sont entreposées dans des bases de données PostgreSQL. Les fichiers DICOM sont quant à eux entreposés dans une plateforme de stockage objet Ceph, qui utilise une interface compatible avec le système S3 d’Amazon Web Services.

Grâce à ces deux technologies, le volume de données pouvant être entreposées peut être très important, sans devoir changer l’architecture de l’application. De plus, les données ne sont pas captives d’une plateforme en particulier.

La plateforme de recherche OpenSearch est aussi utilisée pour explorer les métadonnées DICOM et produire différents tableaux de bords opérationnels et statistiques.

Orthanc: un PACS libre

La gestion des données DICOM est confiée à Orthanc, un système d’archivage et de transmission d’images (PACS) libre et mature.

C’est Orthtanc qui est responsable de l’entreposage des données DICOM sur la plateforme Ceph et des métadonnées dans une base de données PostgreSQL.

Ce système permet aussi une extension à l’aide de programmes développés dans le langage Python, ce qui permet l’indexation des métadonnées dans la plateforme de recherche OpenSearch, ainsi que le déclenchement de tâches de calcul.

Karnak: une passerelle d’anonymisation

Karnak est une passerelle d’anonymisation qui permet de traiter les images provenant du réseau informatique clinique avant de les envoyer à l’instance d’Orthanc de la plateforme PARADIM.

Kheops: une interface utilisateur accessible

Kheops est une interface utilisateur qui est utilisée conjointement avec un PACS. La version utilisée dans PARADIM a été modifiée pour fonctionner avec Orthanc.

Cette interface inclus aussi des fonctionnalités d’authentification pouvant être utilisée avec des systèmes de gestion des accès d’entreprise basés sur OpenID Connect, tels que Azure Active Directory ou KeyCloak.

Kheops offre aussi une interface sécurisée aux fonctionnalités API d’Orthanc en utilisant le protocole DICOMweb.

Kheops permet la création d’albums composés de plusieurs séries d’images. La gestion des accès est effectuée au niveau de ces albums, qui peuvent alors servir dans le cadre de plusieurs projets différents. Afin de permettre la visualisation des données, Kheops permet l’interface avec une variété d’outils de visualisation tels que OHIF et WSI Viewer en ligne, et 3D Slicer sur le poste de l’utilisateur.

Interface Kheops

Visualisation avec OHIF Viewer et WSI Viewer

La plateforme PARADIM met à disposition des utilisateurs deux outils de visualisation.

L’outil OHIF VIEWER permet de visualiser les modalités de tomodensitométrie (CT)

OHIF Viewer

ainsi que les rapport structurés (SR).

Structured Report

L’outil WSI Viewer permet d’explorer les images de microscopie pathologiques (Whole-Slide Imaging)

WSI Viewer

Le répartiteur de tâches

Le répartiteur de tâches est une application développée par notre équipe qui permet d’associer des tâches de calcul à des séries d’images entreposées dans Orthanc. Elle est composée d’une interface graphique ainsi que de deux applications dorsales: une interface API et un exécuteur de tâches qui interface avec la grappe de calcul haute performance.

L’interface API permet de manipuler la base de données MySQL qui entrepose toutes les associations entre les tâches de calcul et les différentes modalités de la norme DICOM utilisées par les équipes de recherche.

API Swagger

Les différentes technologies utilisées

LogicielDescriptionLicence
OpenShiftPlateforme de déploiement d’applicationsApache License, Version 2.0
MySQLBase de données SQLGNU General Public License v2.0
PostgreSQLBase de données SQLPostgreSQL License
OpenAPI et SwaggerSpécification d’APIMIT License
OrthancServeur DICOM (PACS)GNU General Public License v3.0
StreamlitConception d’application web en PythonApache License, Version 2.0
KarnakPortail d’importation de fichiers DICOMEclipse Public License 2.0 ou Apache License, Version 2.0
KheopsInterface de gestion d’albums de fichiers DICOM et d’authentificationMIT License
SlurmGestionnaire de tâches en lots pour LinuxOpenSSL License
NVIDIA CUDAPlateforme de développement d’applications sur GPUApache License, Version 2.0
OpenSearchMoteur de recherche et base de données NoSQL orientée documentsApache License, Version 2.0
DICOMweb WSI ViewerVisualisation d’images WSI (microscopie/pathologie)Apache License, Version 2.0
OHIF ViewersVisualisation de fichiers DICOMMIT License
RabbitMQGestionnaire de files d’attente de messagesMozilla Public Licence 2.0 ou Apache License, Version 2.0
GitLabGestionnaire de code source et plateforme d’intégration et de déploiement en continu (CI/CD)MIT License
CephStockage de fichiers compatible AWS S3GNU Lesser General Public License, Version 2.1
Apptainer/SingularityExécution d’applications conteneurisées sans droits administrateur3-clause BSD License