Rapport de Synthèse
Conception d’un environnement d’imagerie médicale pour la radiothérapie à partir de DICOM-RT
HLAVACEK Stéphane,
Centre régional de lutte contre le cancer Léon Bérard
28 rue Laënnec
69373 LYON Cedex 08
Enseignant(s) responsable(s)
INSA : Marian SCUTURICI
Entreprise : David SARRUT
Résumé
Une partie des chercheurs du département de radiothérapie du centre Léon Bérard travaillent sur des techniques d’imagerie afin d’améliorer l’efficacité des traitements. Pour cela, ils ont besoin de récupérer les données du département dosimétrie pour les traiter et les redonner à la dosimétrie qui s’occupe de la partie médicale des traitements. Ce projet de fin d’étude s’est organisé autour de trois activités principales :
-
Etudier comment sont stockées les distributions de dose au département dosimétrie, et les convertir en format exploitable par les chercheurs du département radiothérapie.
-
Etudier le sens inverse, c’est-à-dire transformer les données modifiées par les chercheurs pour qu’elles soient exploitables par le département dosimétrie.
-
Compléter la librairie CLITK développée au département de radiothérapie, en y intégrant le pont applicatif permettant de relier les deux départements
Mots clefs
Imagerie médicale, radiothérapie, distribution de dose, plan de traitement, ITK, CLITK, pont applicatif, C++
Abstract
Some researchers of the Léon Bérard Center radiotherapy department are working on imagery techniques to improve treatments efficiency. Therefore, they need the datas of the dosimetry department in order to modify them and return them to the dosimetry department which is in charge of treatment’s medical part. This project is composed of three major axes :
-
Study how are stored dose distributions in the dosimetry department, and convert then in an exploitable format by radiotherapy researchers
-
Study the opposite direction, transforming the modified datas by researchers in order to be exploitable by the dosimetry department
-
Complete the CLITK library developed at the radiotherapy department, integrating all the tools needed to connect the two departments.
Key words
Medical imaging, radiotherapy, dose distribution, treatment plan, ITK, CLITK, C++
I. Introduction I.1 Présentation de l’entreprise
Mon PFE s’est déroulé au centre de lutte contre le cancer Léon Bérard (CLB), au sein du service de radiothérapie.Dans le cadre de projets de recherche, le CLB travaille en collaboration avec des chercheurs du LIRIS (Laboratoire d’InfoRmatique en Images et Systèmes d’information, CNRS FRE 2672) pour assister informatiquement la radiothérapie. Ces travaux de recherche se situent plus spécifiquement au niveau du traitement des images.
La radiothérapie est une des trois principales techniques de traitement contre le cancer, avec la chirurgie et la chimiothérapie. Elle consiste à irradier les tumeurs à l’aide de rayons X dehaute énergie tout en essayant d’épargner au maximum les tissus sains environnants. Ce traitement repose en grande partie sur des techniques d’analyse et de traitement d’images numériques pour délimiter les cibles, contrôler les positions, mesurer les doses reçues… [RAD01]
L’un des axes de recherche dans ce cadre est le développement d’algorithmes de traitement d’images 3D auxquelles on ajoute la respiration (on passe à de la 4D). Les images sont ainsi déformées, et les chercheurs essaient actuellement de déterminer si cette technique serait valable pour étudier les variations de dose dûes à la respiration.
I.2 Présentation du PFE
Le projet a trois axes principaux :
D’une part, étudier comment sont stockées les données de distribution de dose au département dosimétrie. Ces données sont créées lorsque les médecins et physiciens planifient des traitements. Ces derniers sont définis sur le logiciel XiO édité par CMS. L’idée est de récupérer ces données afin de les transformer en image exploitables par les chercheurs en radiothérapie, notamment pour y appliquer leurs algorithmes de déformation simulant la respiration.
D’autre part, étudier comment les données de dose sont lues par XiO, afin de pouvoir rendre les données modifiées par les chercheurs en exploitables en radiothérapie.
Enfin, Compléter la librairie CLITK développée par les chercheux en radiothérapie et surcouche de ITK, afin d’y intégrer les outils permettant de faire ces liens entre les deux départements, ainsi que des outils de vérification comme un extracteur de coupe ou un mélangeur d’image.
Ce document présente tout d’abord le format d’une distribution de dose, qui constitue la base du PFE, pour ensuite passer à la description des différentes phases du projet. Enfin, la conclusion et une reflexion sur les futures travaux possibles en continuité avec ce PFE.
II. Plan de traitement et distribution de dose II.1 Création d’une distribution de dose
Avant de calculer une distribution de dose, les phyicisiens et médecins doivent créer un plan de traitement. Il est tout d’abord nécessaire d’obtenir une image volumique du patient à l’aide d’un scanner émettant des rayons X. Ensuite, ils délimitent plusieurs zones sur les images, correspondant aux tumeurs ou à des zones sensibles à ne pas irradier.
Puis le calcul de la dose peut commencer. Les physiciens créent une boîte de calcul, qui a une taille inférieure à l’image, et une résolution plus grande. C’est à l’intérieur de cette boîte que seront calculés les distributions de dose. Ce sont les valeurs de dose contenues dans cette boîte qui nous intéresse.
Au CLB, toutes ces opérations sont effectuées sur le logiciel XiO de CMS [XIO1].
II.2 Format de la distribution de dose
Comme nous l’avons vu précédemment, la dose est calculée dans une boîte définie par les physiciens. Il s’agit en fait d’un parallélépipède rectangle, dont chaque point représente une valeur de dose.
Les points ont une distance entre eux égale à la résolution définie lors de la création de la boîte de calcul. Cette résolution est en générale plus haute que celle de l’image patient (la distance entre les points est plus grande), sinon le calcul serait extrêmement long. Ces points sont aussi appelés points de calcul.
Dans les fichiers de sauvegarde, la distribution de dose est stockée sous forme de matrice à lire séquentiellement pour reconstituer la dose.
Droite
Gauche
Pied
Comme la dose est en 3D, elle peut-être vu de 3 perspectives différentes :
-
Antérieur – postérieur : la dose est vue comme si l’œil était placé devant le patient, face à son buste
-
Tête – pied : l’œil est au dessus du patient
-
Gauche – droite : l’œil est à gauche du patient
La lecture séquentielle de la matrice nous donne la dose dans le plan Tête - pied.
III. Déroulement du projet II.1 Initialisation
Le début du projet a été consacré à de la veille documentaire. J’ai notamment étudié le format DICOM-RT (RT pour radiothérapie) [DIC01], qui constituait une des pistes pour l’extraction de dose. J’ai aussi produit deux documents sous forme de synthèses bibliographiques, l’un concernant la radiothérapie en général, et l’autre traitant des courbes d’isodose (aussi appelées courbes d’isoénergie). Le document sur les isodoses m’a beaucoup servi par la suite pour le développement du premier outil du pont applicatif.
II.2 Etude de l’existant
Cette phase et la précédente ont été réalisées en partie en même temps. Il s’agissait là de comprendre la structure du laboratoire, et les outils disponibles.
La librairie ITK (Insight ToolKit)
ITK [ITK01] est une librairie open source sous une licence de type Berkeley, très peu contraignante, empêchant les contraintes de diffusion des produits basées sur cette licence. ITK est un ensemble de librairies de recalage et de segmentation d’images mais ne prend pas en charge les aspects visualisation et interface graphique.
La libraire CLITK
CLITK [CLITK01] est développée au laboratoire du CLB. Son but premier est d’apporter la puissance des template C++ aux algorithmes d’ITK. En effet, à chaque opération avec ITK le développeur est obligé de spécifier le type de pixel et le nombre de dimensions de l’image. Avec CLITK ce n’est plus nécessaire.
La librairie contient aussi des outils permettant de faire interface avec d’autres départements de recherche. C’est cette librairie qui m’a été demandée de compléter.
Configuration technique
Le laboratoire dispose de 8 ordinateurs d’architecture X86, avec système d’exploitation SUSE (type Linux) et des logiciels open source. Mon éditeur de développement était xemacs.
Documentation
La documentation des outils développés au laboratoire est centralisée sur son WIKI. [WIKI01]
II.3 Analyse des besoins
La problématique du projet est donc d’établir un pont applicatif entre le département dosimétrie et le département radiothérapie pour le traitement des distributions de dose.
En ce qui concerne les besoins du coté dosimétrie, ils sont simples, pouvoir récupérer les données modifiées par la radiothérapie pour pouvoir les utiliser sur XiO de CMS.
Du côté radiothérapie, c’est un peu plus compliqué. Il faut tout d’abord extraire les données de la dose, puis faire en sorte que cette dose extraite puisse être superposée sur le patient. En effet, l’extraction de dose ne concerne que la boîte de calcul. Ceci implique plusieurs opérations, comme effectuer des translations ou encore rééchantilloner l’image avec la bonne résolution etc. Ceci est nécessaire car les algorithmes de déformation pour intégrer la respiration fonctionnent selon l’anatomie du patient.
De plus, le laboratoire de radiothérapie a besoin d’outils de vérification des résultats trouvés, ce qui s’est traduit par le développement d’un outil d’extraction de coupe d’image 3D et un mélangeur d’image.
II.4 Phase d’investigation
Cette phase a été la plus longue. En effet, les besoins étaient bien définis, mais le moyen pour y arriver était à découvrir. Nous pouvons vraiment appeler cela de l’investigation, car nous cherchions le moindre petit indice pouvant nous amener à découvrir la matrice de dose voulue.
Nous pensions au départ que les données pouvaient être stockées dans les fichiers DICOM-RT générés par XiO, mais nous avons fini par abandonner l’idée puisque nous ne trouvions absolument rien.
Nous nous sommes alors tournés vers les fichiers générés par XiO lors de la sauvegarde des plans de traitements. CMS nous a fournit le code d’une procédure de lecture en Fortran, qui m’a permis de comprendre un peu mieux la structure du fichier. Toutefois, il manquait encore beaucoup d’informations et il a encore fallu deviner les choses. De plus, ces fichiers ont une partie ASCII et une partie binaire, ce qui ne facilite pas les choses. Toutefois, avec l’aide de David Sarrut, nous avons finalement pu extraire les données qui nous intéressaient.
II.5 Développement
Le développement a été réalisé en C++ avec les librairies ITK et CLITK. La STL est aussi utilisée, notamment la classe vector.
II.5.1 Les classes utilitaires CMSDoseData
Classe de stockage de toutes les données intéressantes concernant la boîte de calcul de dose et extraite dans les fichiers de dose de XiO
CMSDoseFileReader
Sa méthode Read() parcours un fichier de dose et remplit une instance de CMSDoseData.
CMSDoseFileWriter
Sa méthode Write() Crée un nouveau fichier de dose à partir d’une instance de CMSDoseData correctement remplie. Comme l’intégralité du format d’un fichier de dose n’est pas connue, la classe crée un nouveau fichier en copiant l’intégralité d’un autre fichier de dose, et remplace ensuite la matrice de dose située en fin de fichier.
II.5.2 Les exécutables
clitkCMSDoseToImage
Cet exécutable extrait la boîte de calcul d’un fichier de dose et la stock sous forme d’image. Cette dernière a les mêmes caractéristiques que la boîte de calcul créée sous XiO (résolution, taille, nombre de points). Cet exécutable se sert de la classe CMSDoseFileWriter.
Figure 2 : visualisation d’une boîte de calcul extraite par clitkCMSDoseToImage dans les 3 dimensions
clitkCMSImageToDose
Cet exécutable crée un nouveau fichier de dose à partir d’une image de boîte de calcul et d’un fichier de dose. Il est conseillé de donner en paramètre un fichier de dose dont les paramètres correspondent (taille et résolution de la boîte), car ce fichier sera d’abord copié entièrement avant la modification de sa matrice de dose. Cet exécutable fait appel à la classe CMSDoseFileWriter. Le fichier de dose produit est parfaitement lisible par XiO.
clitkCMSSliceExtractor
Cet exécutable est très utile pour des tests. Il permet en effet d’extrait une coupe d’une boîte de calcul de dose directement à partir d’un fichier de dose (partie binaire). De plus, XiO permet de crée des fichiers ne concernant qu’une seule coupe (entièrement en ASCII), et cet exécutable permet aussi de l’extraire. Nous avons donc pu comparer des coupes entre elles, pour valider l’extraction de la dose en 3D.
clitkDoseTranslation
Cet exécutable constitue la dernière phase de la récupération de données de dose. Comme nous l’avons vu sur la figure 1, la boîte de calcul de dose est située quelque part dans le repère 3D du patient. Hors, la boîte de calcul extraite avec clitkCMSDoseToImage a son origine dans le coin supérieur gauche. Il faut par conséquent la décaler pour pouvoir la superposer sur l’image du patient, ceci dans les 3 dimensions.
Figure 3 : Décalage à réaliser pour mettre la dose extraite à la bonne origine (ici dans le plan X/Y).
Le décalage peut soit être donné en paramètre, soit être automatiquement calculé par le programme.
L’image de dose à décaler passée en paramètre doit déjà avoir la même résolution que l’image patient.
clitkCMSDoseExtractor
Exécute la séquence complète d’extraction de dose dans le sens clinique – recherche, à partir de clitkCMSDoseToImage jusqu’à clitkDoseTranslation. Tout est fait automatiquement, comme le changement de résolution, qui fait appel au filtre d’interpolation de ITK. En effet, la résolution de la boîte de calcul est toujours plus grande que celle de l’image du patient. Pour pouvoir les superposer, elles doivent avoir les mêmes paramètres (taille, résolution). L’utilisation d’une interpolation permet de minimiser les erreurs.
L’image de dose produite est prête à être superposée à celle du patient.
clitkImageOverlap
Cet utilitaire permet de superposer deux images 3D de même taille, avec un facteur de transparence au choix et une colorisation de l’image placée au dessus. Cette colorisation est réalisée grâce à un fenêtrage dont les valeurs sont choisies par l’utilisateur. En fonction de cela, chaque pixel aura une valeur entre 0 et 255 pour chaque composante de couleur (rouge, vert et bleu). Les valeurs rouges correspondent aux pixels ayant les plus grandes valeurs (typiquement là où le plus de dose est déposé)
Figure 4 : Superposition d’une image de patient avec une dose traitée avec clitkDoseTranslation
clitkDoseImageToCMSFile
Exécute la séquence complète du sens recherche – clinique concernant la dose. L’image de dose est sous-échantillonnée pour retrouver la taille initiale de la boîte de calcul. Ici encore, on utilise un filtre d’interpolation ITK. Toutefois, comme c’est un sous-échantillonnage, on applique aussi un filtre gaussien afin d’éviter au maximum les erreurs d’interpolation en « lissant » les valeurs. [GAUSS01]
La fin des opérations est similaire à clitkImageToDose. Le fichier de dose produit est parfaitement lisible par XiO.
II.6 Tests
L’informatique dans le monde médical se doit d’être la plus précise possible. Une part importante du temps a donc été consacré aux tests. Certains outils que j’ai développés nous ont permis de faire des premiers tests approximatifs :
clitkImageOverlap : bon positionnement de la dose sur le patient et bonne distribution de dose. Ceci reste visuel et donc assez peu précis.
clitkCMSSliceExtractor : permet de vérifier que les données binaires extraites sont correctes, en comparant une coupe d’image 3D extraite en ASCII avec une coupe d’image 3D extraite en binaire.
Toutefois, les tests très précis sont impossibles puisque la chaîne de traitement comporte des interpolation qui fausse forcément les valeurs.
Le sens recherche – clinique était plus simple à tester, puisque XiO est un puissant logiciel de visualisation de dose. Il nous suffisait ainsi de comparer les valeurs maximales de dose et de voir si la distribution de dose était correcte.
II.7 Production de documentation
J’ai documenté chaque exécutable sur le Wiki de l’équipe de recherche [CLITK01]. Cette documentation est en anglais et reprend le schéma utilisé par l’équipe.
III Gestion du temps
La planification a été très difficile, car le temps d’investigation était indéterminé. Toutefois, je m’étais fixé pour objectif de finir ce travail pour la fin de la période en alternance, c’est-à-dire fin Mars. Ce délai a été respecté et le temps de développement a été légèrement plus cours que prévu, ce qui m’a permis de mieux tester les outils et les résultats obtenus.
Conclusions
Ce projet a été enrichissant aux niveaux professionnel et personnel. J’ai tout d’abord dû être très rigoureux, puisque la précision était le maître mot. Le travail qui a été réalisé répond bien aux besoins des chercheurs, et les objectifs initiaux ont été atteints. Je suis de plus assez satisfait de ma planification initiale, qui, bien que n’ayant pas été tout à fait précise, correspond plutôt bien à la réalité malgré la difficulté d’évaluer les phases d’investigation.
Ce projet m’a de plus permis de découvrir le monde de la recherche et de l’imagerie médicale. C’est une autre conception de l’informatique, moins standardisée, peut-être parfois plus libre, en tout cas très intéressante.
Remerciements
Je tiens à remercier mon tuteur de stage, David Sarrut (CREATIS), qui m’a bien aidé et encadré tout au long du projet, ainsi que le reste de l’équipe, Vlad Boldéa, Simon Rit et Jef Vandemeulebroucke avec qui j’ai beaucoup travaillé.
Je tiens aussi à remercier Marian Scuturici, tuteur INSA, pour avoir répondu à mes questions concernant le PFE.
Références bibliographiques
[RAD01] Description des activités du Service du
Radiothérapie du CLB :
http://oncora1.lyon.fnclcc.fr/
[XIO1] CMS products : XiO
http://www.cms-euro.com/xio.php
[DIC01] S. Seda, rapport de DESS
Introduction à la norme DICOM et l’extension DICOM-RT
[ITK01] Site officiel de la librairie ITK
http://www.itk.org
[CLITK01] Documentation de CLITK
http://www.creatis.insa-lyon.fr/rio/CLITK
[WIKI01] Wiki Rayonnement, Images, Oncologie
http://www.creatis.insa-lyon.fr/rio
[GAUSS01] I. Bloch, ENST
Filtrage des images
http://www.tsi.enst.fr/~bloch/ANIM/filtrage.pdf
Dostları ilə paylaş: |