Web Analytics
Privacy Policy Cookie Policy Terms and Conditions Therac-25 - Wikipédia

Therac-25

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).

Therac-25 était le nom d'une machine de radiothérapie développée conjointement par l'Atomic Energy of Canada Limited (AECL, Canada) et CGR MeV (France). Il s'agissait d'une évolution des modèles Therac-6 et Therac-20.

Entre 1985 et 1987, le Therac-25 fut impliqué dans au moins six accidents durant lesquels des patients reçurent des doses massives de radiation, parfois de l'ordre de plusieurs centaines de grays. Au moins cinq patients décédèrent des suites de l'irradiation.

La cause directe du dysfonctionnement était d'ordre informatique. La machine est depuis souvent citée dans les documents qui traitent de la sécurité et de la validité des logiciels destinés à des applications sensibles où la vie peut être mise en danger.

Sommaire

[modifier] Description de la machine

Le premier prototype fut produit en 1976. La version commerciale, contrôlée par un ordinateur PDP-11 et à l'origine des accidents, fut disponible dès 1982. Elle fonctionnait selon deux modes de traitement :

  • Thérapie basée sur un faisceau concentré d'électrons avec une énergie comprise entre 5 et 25 MeV durant de courtes périodes ;
  • Thérapie aux rayons X obtenus à partir du flux d'électrons (25 MeV) qui était converti grâce à un dispositif nommé la « cible »

Lorsqu'il travaillait dans le premier mode, le Therac-25 émettait un faisceau d'électrons dont l'intensité était réglée par des aimants. Dans le mode rayons X, trois composants se mettaient en rotation pour intercepter le flux d'électrons et modifier son intensité et sa forme. La cible convertissait les électrons en rayons-X, un filtre générait une intensité uniforme et finalement un ensemble de blocs mobiles (le collimateur) focalisait les rayons. L'intensité du rayonnement était mesurée grâce à une chambre d'ionisation.

[modifier] Accidents

Les accidents se produisaient quand le faisceau d'électrons était activé sans que la cible ne soit correctement mise en place. Le logiciel qui pilotait le Therac-25 ne détectait pas ce mauvais fonctionnement qui engendrait une irradiation massive et potentiellement mortelle pour le patient. Celui-ci recevait directement le faisceau d'électrons qui, avec sa très forte énergie, produisait des brûlures thermiques et radioactives ainsi qu'une sensation proche d'un intense choc électrique. Plusieurs personnes qui furent exposées allaient décéder par la suite.

[modifier] Incident de juin 1985

Le 3 juin 1985, à Marietta, Georgie, une femme de 61 ans atteinte d'un cancer du sein débuta un traitement avec le Therac-25[1]. La machine était en fonctionnement depuis six mois et n'avait pas posé de problèmes. Les opérateurs dirigèrent le faisceau de 10 MeV vers la clavicule de la patiente. Celle-ci ressentit alors une intense chaleur.

Peu après le traitement, la patiente souffrit de douleurs dans la région irradiée. Celles-ci furent imputées au traitement par radiothérapie. Mais la peau commençait à présenter les signes d'une brûlure radioactive. Les spécialistes estimèrent par la suite qu'elle avait reçu une dose comprise entre 15 000 et 20 000 rads (alors que ce type de traitement utilise des doses d'environ 200 rads). Elle continua à souffrir de ses brûlures et son bras resta paralysé.

Le cas ne fut pas signalé au constructeur avant mars 1986.

[modifier] Autres incidents

Les autres incidents furent similaires avec des atteintes profondes de la peau avec des nécroses, des dégâts au niveau des articulations ainsi que de fortes douleurs dans la zone irradiée.

Au Canada, une autre patiente[2] de 40 ans, traitée par radiothérapie avec le Therac 25 en juillet 1985 pour un cancer du col de l'utérus fut également victime d'une erreur de la machine. Lors de sa séance du 26 juillet, après que l'opérateur ait activé le Therac,celui ci s'arrêta en indiquant NO DOSE, TREATMENT PAUSE. Le manipulateur suivi la procédure recommandée et réessaya de mettre en fonctionnement la machine, à 4 reprise avec le même message d'erreur à chaque fois. A la 5ème tentative, la machine s'arrêta et un technicien fut appelé qui ne retrouva rien d'anormal. La patiente se plaigna de brûlure dans les hanches dès le 29 juillet et fut hospitalisé le 30. Elle décéda le 3 novembre de la même année. L'autopsie révéla que la mort était du à son cancer, toutefois l'irradiation avait atteint de manière importante la partie inférieure de son corps et un remplacement complet du col de son fémur aurait été nécessaire si elle avait survécu. Un technicien de l'AECL estima ensuite qu'elle avait reçu entre 13 et 17.000 rads.

[modifier] Causes

Les chercheurs débutèrent une enquête afin de déterminer les causes de ces accidents. Plusieurs problèmes de gestion du projet informatique furent découverts :

  • L'Atomic Energy of Canada Limited (AECL) ne disposait pas d'un organisme indépendant pour l'évaluation du code source
  • L'AECL avait négligé certaines étapes liées au test du logiciel
  • La document du système n'expliquait pas de manière adéquate les codes indiquant des erreurs
  • Le personnel de l'AECL, au début, n'avait pas tenu compte des plaintes ou n'y croyait pas

D'autres problèmes, liés à la conception et la technique, furent également révélés par l'enquête :

  • La machine ne possédait pas de dispositif physique pour bloquer le flux d'électrons en mode « haute énergie » si la cible n'était pas en place. La sécurité, à ce niveau, reposait ainsi uniquement sur le logiciel.
  • Les ingénieurs avaient réutilisés des morceaux de code provenant d'autres modèles. Ces modèles possédaient des sécurités physiques et n'étaient donc pas autant vulnérables aux erreurs logicielles.
  • Le matériel ne proposait aucun moyen au logiciel pour que celui-ci vérifie l'état des capteurs et leur bon fonctionnement (contrôle en boucle ouverte)
  • La tâche qui gérait le contrôle du matériel souffrait de problèmes de concurrence avec la tâche qui gérait l'interface destinée à l'opérateur. Une condition de concurrence (race condition) apparaissait si l'opérateur changeait les paramètres trop rapidement. Ce problème ne fut pas détecté lors des tests puisqu'il fallait un certain temps aux opérateurs avant qu'ils ne parviennent à utiliser l'interface de manière aisée.
  • Le logiciel utilisait un fanion et l'incrémentait. Des dépassements de capacité se produisaient et engendraient la désactivation de certains tests de sécurité.
  • L'ensemble était programmé en assembleur, un langage courant à l'époque mais difficile à analyser et débogguer par rapport aux langages de plus haut niveau.

[modifier] Références

  1. (en) Le cas du Kennestone Regional Oncology Center, Juin 1985. Page 9 et 10 de "Medical devices : The Therac 25", Nancy Leveson, "Safeware : System Safety and Computers", 1995. http://sunnyday.mit.edu/papers/therac.pdf
  2. (en)Le cas de l'Ontario Cancer Foundation, Juillet 1985. Page 11 et 12 de "Medical devices : The Therac 25", Nancy Leveson, "Safeware : System Safety and Computers", 1995. http://sunnyday.mit.edu/papers/therac.pdf

[modifier] Liens externes


Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique.
Portail de la physique – Accédez aux articles de Wikipédia concernant la physique.
Portail de la médecine – Accédez aux articles de Wikipédia concernant la médecine.
THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu