Therac-25

Therac-25 adalah mesin terapi radiasi yang dikendalikan komputer, diproduksi oleh Atomic Energy of Canada Limited (AECL) pada tahun 1982, sebagai penerus dari seri Therac-6 dan Therac-20. Mesin ini dirancang untuk mengobati pasien kanker menggunakan berkas elektron maupun sinar-X berenergi tinggi.
Therac-25 dikenal luas bukan karena kemampuan teknisnya, melainkan karena serangkaian kecelakaan fatal yang ditimbulkannya. Antara Juni 1985 dan Januari 1987, setidaknya enam pasien menerima dosis radiasi yang jauh melebihi batas aman akibat kekutu perangkat lunak pada sistem kendalinya. Akibatnya, tiga pasien meninggal dunia dan tiga lainnya mengalami cedera serius permanen.[1] Rangkaian kecelakaan ini dijuluki sebagai "rangkaian kecelakaan radiasi terburuk dalam sejarah 35 tahun akselerator medis."[1]
Kasus Therac-25 menjadi salah satu studi kasus paling penting dalam sejarah rekayasa perangkat lunak, etika komputer, dan keselamatan sistem kritis, dan terus diajarkan di universitas-universitas di seluruh dunia hingga kini.
Latar belakang
Seri Therac
AECL memproduksi tiga generasi akselerator elektron medis: Therac-6, Therac-20, dan Therac-25. Versi Therac-6 dan Therac-20 dikembangkan bersama perusahaan Prancis CGR (Compagnie générale de radiologie), dan mengandalkan pengaman berbasis perangkat keras (hardware safety interlock) sebagai lapisan keselamatan utama. Rekam jejak keselamatan kedua pendahulu ini sangat baik.[2]
Ketika kemitraan antara AECL dan CGR berakhir sebelum Therac-25 dirancang, AECL memutuskan untuk mengembangkan Therac-25 secara mandiri. Keputusan paling krusial dalam desain Therac-25 adalah menghilangkan hampir seluruh pengaman perangkat keras dan menggantinya dengan sistem keselamatan berbasis perangkat lunak sepenuhnya. Langkah ini dianggap sebagai kemajuan teknis sekaligus efisiensi biaya, karena komputer diyakini mampu mengawasi operasi mesin dengan lebih andal dan fleksibel.[2]
Inovasi teknis
Therac-25 memiliki dua inovasi utama dibanding pendahulunya: akselerator double-pass yang memungkinkan akselerator lebih bertenaga dalam ukuran yang lebih kecil, serta kontrol komputer yang lebih menyeluruh. Kemampuan kontrol komputer ini memungkinkan operator menyiapkan mesin lebih cepat, sehingga mereka memiliki lebih banyak waktu untuk berinteraksi dengan pasien dan dapat menangani lebih banyak pasien dalam satu hari.[2]
Namun, perpindahan menyeluruh ke kendali perangkat lunak ini membawa konsekuensi fatal: seluruh pengaman mekanis dari versi sebelumnya ditiadakan, sehingga jika perangkat lunak gagal, tidak ada lapisan keamanan cadangan yang dapat mencegah terjadinya bahaya.[3]
Kekutu perangkat lunak
Kondisi pacu (race condition)

Penyebab utama kecelakaan Therac-25 adalah kondisi pacu (race condition) — jenis kekutu yang terjadi ketika dua proses dalam program berjalan secara bersamaan dan saling bertabrakan dengan cara yang tidak terduga. Mesin ini memiliki dua mode operasi: mode elektron berenergi rendah (langsung menembakkan berkas elektron ke pasien) dan mode sinar-X (berkas elektron diarahkan ke target logam untuk menghasilkan sinar-X). Kedua mode ini memerlukan pengaturan perangkat keras yang berbeda, khususnya posisi turntable (piringan putar) yang mengarahkan berkas.[1]
Masalah timbul ketika operator memasukkan data terlalu cepat dan menggunakan tombol panah atas untuk mengedit jenis mode yang telah diketik, kemudian menekan Enter sebelum sistem sempat mendaftarkan perubahan tersebut. Akibatnya, perangkat lunak berpikir bahwa konfigurasi perangkat keras sudah benar (misalnya, posisi untuk sinar-X), padahal kenyataannya perangkat keras masih berada pada posisi yang salah. Mesin kemudian menembakkan berkas elektron berenergi tinggi langsung ke pasien tanpa target logam penangkal, menghasilkan dosis radiasi sekitar 100 kali lebih besar dari yang diinginkan, dalam area yang jauh lebih sempit.[4]
Kekutu lainnya
Investigasi mengidentifikasi setidaknya empat kekutu dalam perangkat lunak Therac-25 yang dapat menyebabkan overdosis radiasi.[4] Kekutu lainnya meliputi:
- Luapan bilangan bulat (integer overflow) — sebuah variabel penanda (bit flag) bertambah nilainya secara terus-menerus dan akhirnya mengalami overflow, yang menyebabkan berkas elektron dapat diatur ke mode sinar-X tanpa target sinar-X terpasang pada tempatnya.
- Variabel bersama — sebuah variabel yang sama digunakan sekaligus untuk menganalisis nilai masukan dan melacak posisi turntable, sehingga pembaruan cepat dari operator dapat membingungkan sistem.
- Sensor dosis jenuh — kamar ionisasi (alat pengukur dosis) pada Therac-25 tidak mampu menangani kepadatan ionisasi yang sangat tinggi dari berkas elektron yang tidak tersapu, sehingga sensor menjadi jenuh dan justru menampilkan pembacaan dosis yang sangat rendah kepada operator — seolah-olah semuanya baik-baik saja.[5]
Akibat kekutu-kekutu ini, mesin secara aktif "berbohong" kepada operator: perangkat lunak menampilkan status normal, sementara kenyataannya pasien menerima dosis radiasi yang mematikan. Reaksi pasien menjadi satu-satunya indikasi nyata bahwa terjadi masalah.[5]
Kronologi kecelakaan
| Tanggal | Lokasi | Keterangan | Dampak |
|---|---|---|---|
| Juni 1985 | Kennestone Regional Oncology Center, Marietta, Georgia, AS | Seorang pasien berusia 61 tahun merasakan sensasi panas yang luar biasa saat perawatan clavicle. | Luka bakar radiasi; payudara harus diangkat; kehilangan fungsi bahu dan lengan secara permanen |
| Juli 1985 | Hamilton, Ontario, Kanada | Overdosis radiasi dilaporkan, AECL diberitahu. | Cedera radiasi serius |
| Maret 1986 | East Texas Cancer Center (ETCC), Tyler, Texas, AS | Pasien Ray Cox menerima dosis tinggi saat perawatan punggung atas. Ia merasakan "kejutan listrik yang intens" dan lari keluar ruang perawatan. | Meninggal lima bulan kemudian akibat komplikasi overdosis; mengalami kelumpuhan lengan kiri dan kedua kaki, serta kelumpuhan pita suara kiri sebelum meninggal. |
| April 1986 | East Texas Cancer Center (ETCC), Tyler, Texas, AS | Pasien lain kembali mengalami overdosis; kekutu berhasil direproduksi oleh insinyur AECL setelah insiden ini. | Luka bakar radiasi parah; meninggal dunia |
| 1987 (awal) | Yakima Valley Memorial Hospital, Yakima, Washington, AS | Terjadi meski AECL telah mengeluarkan pembaruan perangkat lunak setelah insiden Tyler. Bersumber dari kondisi pacu yang berbeda. | Luka bakar radiasi parah; meninggal dunia pada April 1987 |
| 1987 (Januari) | Yakima, Washington, AS | Overdosis terakhir yang diketahui; mendorong FDA untuk menghentikan semua mesin Therac-25. | Cedera serius |
Sumber utama kronologi: Leveson & Turner (1993).[1]
Faktor penyebab
Kesalahan rekayasa perangkat lunak
Investigasi mendalam yang dilakukan oleh Nancy Leveson dari University of California, Irvine, dan Clark Turner mengidentifikasi berbagai faktor penyebab sistemis, bukan sekadar satu kekutu tunggal:[1]
- Tidak ada spesifikasi perangkat lunak formal — menurut memo internal FDA, AECL tidak memiliki spesifikasi perangkat lunak atau rencana pengujian yang formal untuk Therac-25.[3]
- Tidak ada pengujian independen — perangkat lunak tidak dievaluasi oleh penguji independen, dan sebagian besar pengujian dilakukan menggunakan simulator perangkat keras, bukan mesin yang sebenarnya.
- Kepercayaan berlebih pada perangkat lunak — AECL berasumsi bahwa perangkat lunak dapat menjamin keselamatan mesin secara penuh. Pengaman mekanis dari Therac-20 ditiadakan tanpa penggantian yang memadai.
- Mengacaukan keandalan dengan keselamatan — perangkat lunak beroperasi puluhan ribu kali tanpa masalah sebelum akhirnya menyebabkan overdosis. AECL menyimpulkan perangkat lunak "aman" hanya karena dianggap "andal". Kenyataannya, keandalan dan keselamatan adalah dua hal yang berbeda.[5]
- Tidak ada mekanisme deteksi kesalahan — perangkat lunak tidak dilengkapi pemeriksaan diri (self-check) atau fitur pendeteksian galat yang dapat mendeteksi inkonsistensi dan kesalahan pengkodean.
- Daur ulang kode tanpa verifikasi ulang — kode perangkat lunak Therac-25 sebagian didasarkan pada kode Therac-20. Ironisnya, kekutu yang sama juga ditemukan pada perangkat lunak Therac-20, namun tidak pernah menyebabkan kecelakaan karena pengaman perangkat keras Therac-20 berhasil mencegahnya.[6]
Kegagalan kelembagaan dan regulasi
- AECL awalnya menyangkal bahwa overdosis radiasi mungkin terjadi pada Therac-25, dan dalam suratnya kepada rumah sakit secara keliru menyatakan bahwa "overdosis tidak mungkin terjadi pada mesin ini."[6]
- Pada tahun 1984, sekitar 94% perangkat medis memasuki pasar AS melalui prosedur "kesetaraan pra-pasar" (*pre-market equivalence*), termasuk Therac-25, sehingga melewati pengujian FDA yang ketat karena dianggap setara dengan teknologi yang sudah ada. Hal ini terjadi meski Therac-25 secara fundamental mengganti semua pengaman perangkat keras dengan perangkat lunak — perubahan yang sangat mendasar.[2]
- Sebuah studi GAO tahun 1986 menemukan bahwa 99% cedera yang disebabkan oleh perangkat medis tidak dilaporkan kepada FDA, dan rumah sakit hanya melaporkan sekitar 51% masalah kepada produsen.[2]
Respons dan penarikan
Pada 6 Februari 1987, FDA menghubungi otoritas kesehatan Kanada dan merekomendasikan agar semua mesin Therac-25 dihentikan hingga modifikasi permanen dapat dilakukan.[7] Pada 10 Februari 1987, FDA secara resmi menyatakan Therac-25 cacat menurut hukum AS. Kesebelas mesin yang sedang beroperasi dihentikan dan kemudian dipasangi kembali pengaman perangkat keras yang diperlukan oleh FDA sebelum diizinkan beroperasi kembali.[2]
Beberapa keluarga korban mengajukan gugatan hukum terhadap AECL dan rumah sakit terkait. Investigasi kriminal turut dilakukan di negara bagian Texas.[8]
Warisan dan dampak
Kasus Therac-25 membawa perubahan mendasar dalam berbagai bidang:
Regulasi perangkat medis
Sejak kejadian Therac-25, FDA memperketat sistem pelaporan dan memperluas pedomannya untuk secara eksplisit mencakup perangkat lunak dalam perangkat medis. Produsen kini diwajibkan menyediakan dokumentasi lengkap mengenai langkah-langkah keselamatan dan penilaian risiko.[9] Kasus ini juga memperkuat pentingnya pelaporan insiden secara mandatori antara rumah sakit, produsen, dan regulator pemerintah.
Rekayasa perangkat lunak
Kecelakaan Therac-25 menjadi katalis lahirnya bidang rekayasa sistem kritis (safety-critical systems engineering) sebagai disiplin ilmu tersendiri. Dari kasus ini lahir pelajaran-pelajaran berharga yang kini menjadi fondasi praktik rekayasa perangkat lunak modern, antara lain:[10]
- Pengaman perangkat keras tidak boleh digantikan sepenuhnya oleh perangkat lunak dalam sistem keselamatan kritis.
- Keandalan (*reliability*) tidak sama dengan keselamatan (*safety*).
- Pesan galat yang ambigu atau terlalu sering muncul akan diabaikan oleh operator.
- Kode yang digunakan ulang dari sistem lama harus diverifikasi ulang dalam konteks sistem baru.
- Antarmuka yang ramah pengguna dan keselamatan terkadang dapat saling bertentangan dan harus diseimbangkan dengan cermat.
- Pengujian independen dan spesifikasi formal adalah keharusan dalam sistem keselamatan kritis.
Akademik dan etika
Makalah investigasi Nancy Leveson dan Clark Turner (1993) yang diterbitkan di IEEE Computer menjadi dokumen acuan utama dan terus dikutip secara luas dalam literatur akademik tentang keselamatan perangkat lunak. Kasus Therac-25 kini merupakan studi kasus wajib dalam kurikulum informatika kesehatan, rekayasa perangkat lunak, dan etika komputer di universitas-universitas di seluruh dunia.[11]
Lihat pula
- Kekutu (Bug)
- Pengawakutuan (Debugging)
- Rekayasa perangkat lunak
- Keselamatan sistem kritis
- Y2K
- Ariane 5, penerbangan 501
- Nancy Leveson
Referensi
- ^ a b c d e Leveson, Nancy G.; Turner, Clark S. (1993). "An Investigation of the Therac-25 Accidents". IEEE Computer. 26 (7). IEEE: 18–41. doi:10.1109/MC.1993.274940.
- ^ a b c d e f "A History of the Introduction and Shut Down of Therac-25". Online Ethics Center.
- ^ a b "The Worst Computer Bugs in History: Race conditions in Therac-25". SmartBear. 19 September 2017.
- ^ a b "Killer Bug: Therac-25". PVS-Studio.
- ^ a b c "The Therac-25 Incidents: Causal Factors". Wilfrid Laurier University.
- ^ a b "Death and Denial: The Failure of the THERAC-25". California Polytechnic State University.
- ^ "An Investigation of the Therac-25 Accidents, Part IV". Michigan State University.
- ^ "Therac-25". Ethics Unwrapped, University of Texas at Austin.
- ^ "The Therac-25 Incident: A Critical Analysis of Medical Device Failures". Blue Goat Cyber.
- ^ "Therac-25 Incident: The Deadly Consequences of Software Failure in Medical Devices". Vocal.
- ^ "Therac-25". Wikipedia.
Pranala luar
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.