دستگاه پرتودرمانی ترک ۲۵ (Therac-۲۵) قرار بود با کمک نرمافزار، درمان سرطان را سریعتر و دقیقتر کند، اما مجموعهای از خطاهای برنامهنویسی، ضعفهای طراحی و نقص در نظارت ایمنی، آن را به یکی از مشهورترین پروندههای مرگبار تاریخ فناوری تبدیل کرد. بین سالهای ۱۹۸۵ تا ۱۹۸۷، چند بیمار در آمریکا و کانادا پس از دریافت دوزهای بسیار بالای پرتو، دچار آسیبهای شدید شدند و شماری از آنها جان باختند. این پرونده هنوز هم در مهندسی نرمافزار بهعنوان هشداری جدی درباره سپردن تصمیمهای حیاتی به سیستمهای کامپیوتری تدریس میشود.
تینا مزدکی_در اوایل دهه ۱۹۸۰، پرتودرمانی به یکی از روشهای مهم درمان سرطان تبدیل شده بود. پزشکان برای از بین بردن سلولهای سرطانی از پرتوهای یونساز استفاده میکردند، اما دقت در تعیین محل تابش و کنترل میزان انرژی اهمیت حیاتی داشت. دریافت دوز کمتر از مقدار تجویزشده میتوانست اثربخشی درمان را کاهش دهد و دریافت دوز بیش از اندازه نیز به بافتهای سالم بدن آسیب میزد.
در چنین شرایطی، شرکت کانادایی AECL به فکر توسعه نسل تازهای از دستگاههای پرتودرمانی افتاد. نتیجه این تلاش، دستگاهی به نام Therac-۲۵ بود که با هدف ترکیب قدرت شتابدهنده خطی و قابلیتهای کنترل کامپیوتری طراحی شد.
این دستگاه در اواخر سال ۱۹۸۲ به بازار عرضه شد و در مراکز درمانی آمریکا و کانادا مورد استفاده قرار گرفت. نام ۲۵ در این دستگاه به انرژی پرتو الکترونی آن، یعنی ۲۵ مگاالکترونولت، اشاره داشت. این دستگاه میتوانست با استفاده از دو شیوه متفاوت، بافتهای سطحی و عمقی بدن را هدف قرار دهد.
مزیت مهم ترک-۲۵، طراحی فشردهتر آن بود. مهندسان توانسته بودند مسیر شتابدهنده را به شکلی طراحی کنند که دستگاه با وجود قدرت بالا، فضای کمتری اشغال کند.
اما نوآوری اصلی فقط به ابعاد و قدرت دستگاه محدود نمیشد. ترک-۲۵ قرار بود بخش زیادی از فرایند آمادهسازی و کنترل درمان را به کامپیوتر بسپارد. اپراتور اطلاعات بیمار و دوز موردنیاز را وارد میکرد و نرمافزار وظیفه تنظیم دستگاه و کنترل فرایند تابش را برعهده میگرفت. این ویژگی سرعت کار را افزایش میداد و به مراکز درمانی اجازه میداد در طول روز بیماران بیشتری را درمان کنند.
در ظاهر، همهچیز نشانه پیشرفت بود. مشکل از جایی آغاز شد که طراحان برای اعتماد بیشتر به نرمافزار، بخشی از سازوکارهای ایمنی فیزیکی دستگاه را کنار گذاشتند.
تصمیمی که همهچیز را تغییر داد
برای درک فاجعه ترک-۲۵ باید به تفاوت آن با نسلهای قبلی این دستگاه نگاه کرد. شرکت AECL پیش از این دو مدل به نامهای Therac-۶ و Therac-۲۰ تولید کرده بود. این دستگاهها نیز از کامپیوتر برای تسهیل عملکرد استفاده میکردند، اما بخش مهمی از سازوکارهای ایمنی آنها مستقل از نرمافزار و بهصورت سختافزاری طراحی شده بود.
برای مثال، مدارهای مستقل و قفلهای مکانیکی مانع از آن میشدند که دستگاه در وضعیت نامناسب، پرتو خطرناک را به سمت بیمار هدایت کند. اما در طراحی ترک-۲۵، رویکرد متفاوتی اتخاذ شد. مهندسان تصمیم گرفتند بخش قابلتوجهی از کنترلهای ایمنی را به نرمافزار منتقل کنند. به این ترتیب، دستگاه جدید به ترکیبی بسیار وابسته از سختافزار و نرمافزار تبدیل شد.
این تصمیم از نظر اقتصادی و مهندسی مزایایی داشت. تعداد قطعات سختافزاری کمتر میشد، دستگاه ارزانتر تولید میشد و کنترل عملکرد آن سادهتر به نظر میرسید.
با این حال، یک مشکل اساسی وجود داشت. اگر نرمافزار اشتباه میکرد، دیگر لزوما یک سازوکار مستقل و فیزیکی وجود نداشت که جلوی پیامد خطرناک آن را بگیرد. در نسلهای قبلی، اگر کامپیوتر دچار خطا میشد، برخی از قفلهای سختافزاری همچنان میتوانستند مانع از تابش نامناسب شوند. اما در ترک-۲۵، بخش مهمی از این مسئولیت به همان سیستمی سپرده شده بود که ممکن بود دچار خطا شود.
به عبارت دیگر، نرمافزار هم وظیفه اجرای درمان را برعهده داشت و هم باید مراقب میبود که درمان از محدوده ایمن خارج نشود. این وابستگی به نرمافزار، در کنار ضعف در تحلیل خطرها و آزمایش سیستم، زمینهساز یکی از مشهورترین حوادث تاریخ مهندسی کامپیوتر شد.

یک دستگاه، دو نوع پرتو و یک وضعیت خطرناک
ترک-۲۵ میتوانست از پرتو الکترونی و پرتو ایکس برای درمان استفاده کند. پرتوهای الکترونی برای درمان بافتهای سطحی مناسب بودند، در حالی که پرتو ایکس امکان نفوذ عمیقتر به بافتهای بدن را فراهم میکرد.
برای تولید پرتو ایکس، دستگاه باید پرتو الکترونی پرانرژی را به یک هدف فلزی هدایت میکرد تا پرتوهای ایکس تولید شوند. سپس سامانهای دیگر شدت و توزیع پرتو را تنظیم میکرد تا انرژی مناسب به بدن بیمار برسد.
اما اگر دستگاه در وضعیت اشتباه قرار میگرفت، پرتو الکترونی پرقدرت میتوانست بدون عبور از اجزای لازم، مستقیما به بدن بیمار برخورد کند. برای تغییر وضعیت دستگاه، مجموعهای چرخان به نام Turntable وجود داشت که اجزای مختلف موردنیاز برای حالتهای درمانی را در مسیر پرتو قرار میداد.
نرمافزار باید مطمئن میشد این مجموعه در موقعیت درست قرار گرفته است و سپس اجازه تابش میداد. در صورت بروز اختلال، دستگاه باید درمان را متوقف میکرد.
مشکل این بود که برخی از خطاهای نرمافزاری باعث میشدند دستگاه تصور کند همهچیز درست است، در حالی که وضعیت واقعی اجزای مکانیکی با تنظیمات انتخابشده مطابقت نداشت.
پرتو خام دستگاه میتوانست در هر جلسه درمانی بین ۱۵ هزار تا ۲۰ هزار راد دوز تابشی ایجاد کند، در حالی که دوز معمول تجویزشده برای یک جلسه درمان در حدود ۲۰۰ راد بود.
این اختلاف نشان میدهد چرا کوچکترین اشتباه در کنترل دستگاه میتوانست به آسیبهای جبرانناپذیر منجر شود.
نخستین قربانی؛ بیماری که احساس کرد بدنش میسوزد
نخستین حادثه شناختهشده ترک-۲۵ در ۳ ژوئن ۱۹۸۵ در مرکز سرطانشناسی منطقهای کنستون (Kennestone Regional Oncology Center) در شهر مارییتا در ایالت جورجیا رخ داد. لیندا نایت، زنی ۶۱ ساله که برای پیگیری درمان سرطان سینه به این مرکز مراجعه کرده بود، قرار بود تحت پرتودرمانی ناحیه ترقوه قرار بگیرد.
او پیش از آن نیز چندین جلسه درمان با دستگاههای پرتودرمانی را پشت سر گذاشته بود و میدانست که این فرایند معمولا بدون درد انجام میشود. اما این بار اتفاق متفاوتی افتاد.
به محض روشن شدن دستگاه، نایت احساس کرد نیرویی شبیه حرارت شدید و سوزش به بدنش برخورد کرده است. وقتی تکنسین وارد اتاق شد، بیمار گفت که بدنش را سوزاندهاند. پاسخ اولیه تکنسین این بود که چنین اتفاقی امکان ندارد.
اما وضعیت جسمی نایت در روزهای بعد بهسرعت بدتر شد. پوست ناحیه سینه او متورم شد و درد شدیدی را تجربه کرد. پس از مدتی، نشانههای سوختگی در پشت بدنش نیز ظاهر شد. این موضوع پزشکان را به این نتیجه رساند که آسیب از سطح پوست فراتر رفته و ناشی از دریافت مقدار بسیار زیادی پرتو بوده است.
برآوردهای پزشکی نشان میداد که او احتمالا در یک یا دو نوبت، دوزی در حدود ۲۰ هزار راد دریافت کرده است. این میزان تقریبا ۱۰۰ برابر دوز معمول یک جلسه درمان بود.
نایت در نهایت بخشی از توان حرکتی شانه و بازوی خود را از دست داد و برای کنترل آسیبهای ناشی از تابش، سینه چپ او برداشته شد. نکته عجیب ماجرا این بود که شرکت سازنده در پاسخ به پرسشهای اولیه درباره امکان بروز چنین خطایی، اعلام کرده بود که دستگاه اساسا نمیتواند در وضعیت درمان الکترونی بدون سامانه پخشکننده پرتو کار کند. به این ترتیب، نخستین نشانه جدی از وجود نقص در ترک-۲۵ با تردید و انکار روبهرو شد.
پنج بار فشردن دکمه تکرار؛ خطایی که بیمار را به بیمارستان کشاند
حادثه بعدی در ۲۶ ژوئیه ۱۹۸۵ در مرکز سرطان انتاریو در شهر همیلتون کانادا اتفاق افتاد. دونا گارتنر، بیمار ۴۰ ساله مبتلا به سرطان دهانه رحم، برای بیستوچهارمین جلسه پرتودرمانی خود به مرکز مراجعه کرده بود.
اپراتور دستگاه را فعال کرد، اما پس از حدود پنج ثانیه، سیستم متوقف شد و پیغام خطای H-Tilt روی نمایشگر ظاهر شد. نمایشگر نشان میداد که هیچ دوزی از پرتو به بیمار نرسیده است. اپراتور نیز با تصور اینکه درمان آغاز نشده، دکمه ادامه را فشار داد.
دستگاه دوباره متوقف شد و همان پیام را نمایش داد. این فرایند در مجموع پنج بار تکرار شد. پس از بررسی اولیه، تکنسین مرکز نتوانست نقص مشخصی در دستگاه پیدا کند و گارتنر مرکز درمانی را ترک کرد. با این حال، بیمار از احساس سوزش و درد غیرمعمول در ناحیه لگن شکایت داشت.
سه روز بعد، وضعیت او به حدی وخیم شد که در بیمارستان بستری شد. مرکز درمانی پس از این حادثه دستگاه را از سرویس خارج کرد و شرکت سازنده را در جریان قرار داد. این نخستین بار بود که AECL بهطور رسمی از احتمال دریافت دوز بیش از اندازه توسط یک بیمار ترک-۲۵ مطلع میشد.
شرکت در واکنش اولیه، احتمال وجود نقص در کلید تشخیص موقعیت قطعات چرخان دستگاه را مطرح کرد و اصلاحاتی در بخش مکانیکی و نرمافزاری انجام داد.
اما نکته تلخ این ماجرا آن بود که با وجود آسیب شدید ناشی از پرتودهی، گارتنر در نوامبر همان سال بر اثر سرطان جان باخت. بررسی کالبدشکافی نشان داد اگر بیماری زمینهای جان او را نمیگرفت، آسیب ناشی از پرتودهی احتمالا به جراحی تعویض کامل مفصل لگن منجر میشد.
شرکت تصور میکرد با اصلاحات انجامشده، مشکل برطرف شده است، اما حوادث بعدی نشان دادند که نقص اصلی هنوز بهطور کامل شناسایی نشده بود.
وقتی شرکت سازنده به بیماران و پزشکان اطمینان میداد دستگاه مقصر نیست
در دسامبر ۱۹۸۵، حادثه دیگری در بیمارستان یادبود دره یاکیما (Yakima Valley Memorial Hospital) در ایالت واشنگتن رخ داد. جانیس تیلمان، بیماری که برای درمان با ترک-۲۵ مراجعه کرده بود، پس از یکی از جلسات متوجه قرمزی غیرعادی پوست ناحیه لگن خود شد.
این قرمزی به شکل خطوط موازی روی پوست ظاهر شده بود. از آنجا که آسیبهای ناشی از دریافت بیش از اندازه پرتو ممکن است با چند روز تأخیر بروز کنند، در ابتدا ارتباط روشنی میان وضعیت پوست بیمار و دستگاه پرتودرمانی پیدا نشد.
بیمار به درمان ادامه داد و کارکنان مرکز نیز به دنبال علت دیگری برای این تغییرات پوستی بودند. مرکز درمانی موضوع را با شرکت سازنده در میان گذاشت، اما پاسخ دریافتشده اطمینانبخش بود. AECL اعلام کرد که پس از بررسی، آسیب گزارششده نمیتواند ناشی از نقص دستگاه یا اشتباه اپراتور باشد. همین اطمینان باعث شد احتمال ارتباط آسیب با پرتودهی بیش از اندازه به حاشیه برود.
اما در بررسیهای بعدی مشخص شد تیلمان دچار زخم مزمن، تخریب بافت و درد مداوم شده است. او برای درمان به جراحی و پیوند پوست نیاز پیدا کرد.
این حادثه نشان داد که حتی پس از نخستین هشدارها و اصلاحات اولیه، مشکل ترک-۲۵ همچنان ادامه داشت و پاسخهای اطمینانبخش شرکت سازنده نمیتوانست جایگزین بررسی مستقل و دقیق شود.
خطای معروف Malfunction ۵۴؛ وقتی یک کلید ساده فاجعه آفرید
یکی از مهمترین نقاط عطف پرونده ترک-۲۵ در مارس و آوریل ۱۹۸۶ در مرکز سرطان شرق تگزاس در شهر تایلر اتفاق افتاد.
در ۲۲ مارس ۱۹۸۶، بیماری به نام آیزاک دال برای نهمین جلسه پرتودرمانی خود مراجعه کرد. او پیشتر تحت جراحی قرار گرفته بود و قرار بود ناحیه شانه چپش با پرتو درمان شود.
اپراتور هنگام وارد کردن اطلاعات درمانی متوجه اشتباهی شد و از کلید جهتنمای بالا روی صفحهکلید برای اصلاح اطلاعات استفاده کرد.
پس از آغاز درمان، دستگاه متوقف شد و پیام «Malfunction ۵۴» روی نمایشگر ظاهر شد. این خطا در ظاهر به معنای توقف درمان بود و نمایشگر اعلام میکرد تنها مقدار اندکی از دوز تجویزشده به بیمار رسیده است.
اپراتور تصور کرد مشکل جدی نیست و دکمه ادامه را فشار داد. اما بیمار در داخل اتاق درمان، اتفاق دیگری را تجربه میکرد. دال ناگهان نور شدیدی دید، صدایی شبیه وزوز و جرقه شنید و ضربهای همراه با حرارت شدید احساس کرد. او که متوجه غیرعادی بودن وضعیت شده بود، تلاش کرد از تخت بلند شود. در همین لحظه، تلاش مجدد دستگاه برای آغاز درمان، شوک دیگری به بدنش وارد کرد.
نکته عجیبتر اینکه در آن روز، نمایشگر تصویری مرکز درمانی قطع بود و سامانه صوتی نیز درست کار نمیکرد. بنابراین اپراتور امکان مشاهده مستقیم وضعیت بیمار را نداشت. دال پس از خروج از اتاق درمان معاینه شد، اما در بررسی اولیه تصور کردند که احتمالا دچار برقگرفتگی شده است.
شرکت سازنده نیز پس از بررسی دستگاه نتوانست خطا را بازتولید کند و اعلام کرد که ترک-۲۵ قادر به ایجاد چنین دوز اضافهای نیست.
اما وضعیت بیمار بهتدریج وخیمتر شد. او دچار درد مداوم، تهوع، اختلالات عصبی و فلج اندامها شد و در نهایت در اوت ۱۹۸۶ بر اثر عوارض پرتودهی جان باخت. چهار روز پس از حادثه دال، در ۱۱ آوریل ۱۹۸۶، بیمار دیگری به نام دنیل مککارتی در همان مرکز درمانی تحت پرتودرمانی قرار گرفت.
این بار اپراتور هنگام اصلاح اطلاعات درمانی دوباره از کلید جهتنمای بالا استفاده کرد و پس از آغاز درمان، همان پیام Malfunction ۵۴ ظاهر شد. مککارتی بهشدت فریاد میزد و میگفت صورتش آتش گرفته است. او نیز پیش از توقف دستگاه، نور شدیدی دیده و صدایی شبیه سوختن و جرقه شنیده بود.
پس از این حادثه، فیزیکدان مرکز درمانی تصمیم گرفت دستگاه را از سرویس خارج کند و همراه اپراتور، شرایط بروز خطا را بررسی کند. آنها سرانجام متوجه شدند که خطا زمانی اتفاق میافتد که اپراتور اطلاعات درمان را با سرعت زیاد اصلاح میکند.
این بار شرکت سازنده نیز توانست شرایط بروز خطا را بازتولید کند. نتیجه بررسیها نشان داد که مشکل به نحوه مدیریت همزمان وظایف نرمافزار مربوط است. اپراتور در فاصله زمانی بسیار کوتاهی اطلاعات را تغییر میداد، در حالی که نرمافزار هنوز مشغول پردازش تنظیمات قبلی بود.
این وضعیت باعث میشد بخشهای مختلف برنامه با اطلاعات ناسازگار کار کنند و دستگاه در شرایطی خطرناک قرار بگیرد. شرکت برای جلوگیری موقت از تکرار حادثه، پیشنهاد کرد کلید جهتنمای بالا از صفحهکلید دستگاه حذف شود.
اما مککارتی نیز پس از آسیبهای شدید عصبی و جسمی، در اول مه ۱۹۸۶ جان باخت.
باگ نرمافزاری چه بود؟
پرونده ترک-۲۵ یکی از شناختهشدهترین نمونههای خطای Race Condition در تاریخ مهندسی نرمافزار است. Race Condition یا «شرایط رقابتی» زمانی رخ میدهد که چند فرایند نرمافزاری بهطور همزمان به اطلاعات یا منابع مشترک دسترسی پیدا میکنند و نتیجه عملکرد سیستم به ترتیب و زمانبندی اجرای آنها وابسته میشود.
برای درک سادهتر این اتفاق، دو کارمند را تصور کنید که همزمان در حال تغییر یک پرونده هستند. یکی اطلاعات جدیدی را وارد میکند، اما دیگری هنوز بر اساس اطلاعات قبلی تصمیم میگیرد. اگر سامانه نتواند ترتیب این تغییرات را بهدرستی مدیریت کند، نتیجه ممکن است کاملا متفاوت از چیزی باشد که هر دو انتظار دارند.
در ترک-۲۵ نیز چنین وضعیتی اتفاق افتاد. نرمافزار دستگاه باید همزمان چند وظیفه را مدیریت میکرد. از جمله دریافت اطلاعات اپراتور، تنظیم شدت پرتو، کنترل موقعیت قطعات مکانیکی و بررسی وضعیت ایمنی.
زمانی که اپراتور با سرعت زیاد اطلاعات را اصلاح میکرد، امکان داشت بخشهای مختلف نرمافزار به وضعیت یکسانی از دادهها دسترسی نداشته باشند. در نتیجه، یک بخش از برنامه تصور میکرد تنظیمات قبلی هنوز معتبر هستند، در حالی که بخش دیگری اطلاعات جدید را دریافت کرده بود.
این ناهماهنگی میتوانست باعث شود دستگاه با وجود قرار نداشتن اجزای مکانیکی در موقعیت مناسب، پرتو پرقدرت را فعال کند. نکته مهم این است که خطای نرمافزاری فقط به معنای اشتباه در نوشتن یک دستور نبود. مشکل اصلی در نحوه طراحی و مدیریت فرایندهای همزمان، نبود سازوکارهای کافی برای جلوگیری از وضعیتهای خطرناک و ضعف در آزمایش شرایط غیرمعمول بود.
از سوی دیگر، استفاده از کدهای بهجامانده از نسلهای قبلی نیز باعث شده بود برخی از فرضیات قدیمی بدون ارزیابی کامل در دستگاه جدید مورد استفاده قرار بگیرند. به این ترتیب، یک نقص نرمافزاری که در شرایط خاص فعال میشد، به خطری واقعی برای جان بیماران تبدیل شد.

حادثه آخر؛ بیماری که بهجای ۷۹ راد، هزاران راد دریافت کرد
با وجود اصلاحات انجامشده، پرونده ترک-۲۵ هنوز بسته نشده بود. در ۱۷ ژانویه ۱۹۸۷، حادثه دیگری در بیمارستان یاکیما رخ داد.
آندرس انگمن برای دریافت مجموعهای از درمانهای پرتویی به بیمارستان مراجعه کرده بود. دو مرحله نخست درمان طبق برنامه انجام شد، اما در مرحله بعدی دستگاه با خطا مواجه شد. اپراتور تصور کرد که هنوز دوزی به بیمار نرسیده است و تلاش کرد درمان را ادامه دهد.
انگمن در داخل اتاق درمان احساس سوزش شدیدی در قفسه سینه کرد و موضوع را از طریق سامانه ارتباطی به اپراتور اطلاع داد. پس از بررسیهای بیشتر، مشخص شد دستگاه احتمالا در وضعیتی قرار گرفته که پرتو الکترونی بدون عبور از اجزای لازم به بیمار رسیده است.
این بار نیز نرمافزار نتوانسته بود موقعیت واقعی مجموعه چرخان دستگاه را بهدرستی تشخیص دهد. برآورد مهندسان نشان میداد انگمن بهجای دریافت ۷۹ راد دوز موردنظر، احتمالا بین ۸ هزار تا ۱۰ هزار راد پرتو دریافت کرده است.
او در آوریل ۱۹۸۷ جان باخت. اگرچه پیش از این حادثه به سرطان پیشرفته مبتلا بود، بررسیها نشان داد عوارض ناشی از پرتودهی بیش از اندازه نقش اصلی را در مرگ او داشتند. این حادثه نشان داد که حتی اصلاح خطای مربوط به کلید جهتنما و Race Condition نیز برای ایمنسازی کامل دستگاه کافی نبوده است.
پایان کار ترک-۲۵؛ ورود نهادهای نظارتی
پس از تکرار حوادث و افزایش شواهد مربوط به نقص دستگاه، سازمان غذا و داروی آمریکا (FDA) وارد عمل شد. در مه ۱۹۸۶، این سازمان ترک-۲۵ را معیوب اعلام کرد و از شرکت سازنده خواست برنامهای جامع برای اصلاح نقصها ارائه دهد.
در ادامه، FDA از AECL خواست علاوه بر اصلاح نرمافزار، سازوکارهای ایمنی دستگاه را نیز بازنگری کند. از جمله اقدامات موردنظر، تغییر پیامهای خطا، جلوگیری از ادامه درمان پس از دریافت پالسهای غیرعادی پرتو و تقویت سازوکارهای مستقل ایمنی بود.
پس از حادثه ژانویه ۱۹۸۷ نیز فشار نهادهای نظارتی بیشتر شد. در فوریه همان سال، FDA و نهادهای مسئول در کانادا توصیه کردند استفاده معمول از دستگاه تا زمان تکمیل اصلاحات متوقف شود.
شرکت سازنده در چند مرحله برنامه اصلاحی ارائه کرد و پس از انجام آزمایشها و بررسیهای فنی، تغییرات لازم را روی دستگاهها اعمال کرد.
این اصلاحات شامل بازنگری نرمافزار، تغییر برخی قطعات سختافزاری و بازگرداندن سازوکارهای ایمنی مستقل بود.
در نهایت، دستگاههای اصلاحشده پس از بررسیهای ایمنی دوباره وارد چرخه استفاده شدند و در گزارش تاریخی مرکز اخلاق آنلاین دانشگاه ویرجینیا، حادثه دیگری از این نوع پس از اصلاحات نهایی ثبت نشده است.

۵۸۳۲۳
کد مطلب 2302063
-
تراک-۲۵ ، دستگاهی که به جای درمان سرطان، جان بیماران را گرفت