Therac-25 là cỗ máy xạ trị gây ra một trong những chuỗi tai nạn phần mềm nổi tiếng nhất lịch sử công nghệ, kéo dài từ năm 1985 đến 1987 ở Mỹ và Canada. Câu chuyện mở đầu bằng một dòng chữ khó hiểu trên màn hình ở Tyler, Texas, và kết thúc bằng một bài học về an toàn mà ngành kỹ thuật phần mềm vẫn nhắc lại đến nay. Nó đáng quan tâm vì ngày nay AI cũng đang đứng giữa người vận hành và người bệnh theo cách tương tự.

Tóm tắt nhanh

Sáu ca quá liều nặng xảy ra vì một cỗ máy do phần mềm canh gác, nơi các ổ khoá phần cứng của đời trước đã bị bỏ đi. Lỗi phần mềm là tác nhân trực tiếp, nhưng nó chỉ giết người vì không còn lớp chặn độc lập nào, và vì mỗi lần bệnh viện báo có người bị bỏng, nhà sản xuất lại đáp rằng máy không thể quá liều.

Diễn biến chính

1981–1983: một tham vọng không còn khoá phần cứng

Công ty năng lượng nguyên tử AECL của Canada từng hợp tác với một hãng Pháp để làm các máy Therac-6 và Therac-20. Đó là máy cũ gắn thêm máy tính cho tiện, còn phần cứng vẫn tự đứng được nhờ công tắc cơ khí, mạch điện độc lập và cầu chì. Năm 1981 hai bên chia tay, AECL đi tiếp một mình với Therac-25: gọn hơn, rẻ hơn, mạnh hơn, bắn được cả electron lẫn tia X.

Điểm then chốt là AECL không lắp lại đầy đủ các khoá phần cứng cũ; phần mềm được giao nhiệm vụ canh gác. Phần mềm do một người viết bằng hợp ngữ, và đến nay người ngoài gần như không biết gì về người đó. Bản phân tích an toàn năm 1983 gần như gạt phần mềm ra ngoài, còn khả năng chọn nhầm mức năng lượng được ghi là một phần trăm tỷ mà không có lời giải thích. Thông báo lỗi chỉ gồm chữ malfunction kèm một số từ 1 đến 64, và sổ tay không giải thích các số ấy. Với chế độ treatment pause, người vận hành chỉ cần nhấn P để chạy tiếp, nên máy dừng liên tục khiến phím P trở thành phản xạ.

1985: ba nơi, ba người bị bỏng

Ngày 3 tháng 6 năm 1985 ở Marietta, bang Georgia, một bệnh nhân nữ kêu rằng bà bị đốt, và được trả lời là điều đó không thể. Nhà vật lý Tim Still hỏi AECL, ba ngày sau nhận câu trả lời rằng máy không thể làm vậy. Sự cố không được báo cho FDA vì khi ấy luật chỉ buộc nhà sản xuất báo cáo. Bà được ước tính nhận liều gấp gần trăm lần bình thường và vụ kiện được dàn xếp.

Ngày 26 tháng 7 năm 1985 ở Hamilton, Ontario, máy tắt liên tục với dòng chữ no dose, người vận hành nhấn P nhiều lần. Bệnh nhân mất vào tháng 11, giấy chứng tử ghi ung thư. AECL không tái hiện được lỗi, quy cho một vi công tắc rồi tuyên bố an toàn tăng ít nhất năm bậc độ lớn, dù trong báo cáo gửi FDA họ thừa nhận chỉ nghi ngờ. Cơ quan bảo vệ phóng xạ Canada đòi khoá phần cứng độc lập và bỏ quyền nhấn P; AECL chỉ giảm số lần nhấn P từ năm xuống ba. Tháng 12 năm 1985 ở Yakima, bang Washington, một bệnh nhân có những vệt đỏ song song như bóng song sắt; thư trả lời tháng 2 năm 1986 của nhà sản xuất khẳng định tổn thương không thể do máy gây ra.

1986: Tyler và lỗi tám giây

Ngày 21 tháng 3 năm 1986 ở Tyler, kỹ thuật viên gõ nhầm x, sửa thành e rồi bắt đầu phát tia. Máy báo Malfunction 54 và treatment pause, cô nhấn P theo thói quen. Camera bị rút điện và loa hỏng nên cô không thấy hay nghe gì. Bệnh nhân là một công nhân mỏ dầu; ông ước tính nhận khoảng một trăm lần liều của cả buổi điều trị trong chưa đầy một giây và mất năm tháng sau. Máy chạy lại ngày 7 tháng 4.

Ngày 11 tháng 4 năm 1986, cùng phòng, cùng máy, cùng kỹ thuật viên, một bệnh nhân khác bị quá liều và mất ba tuần sau. Lần này nhà vật lý Fritz Hager ngừng máy ngay, ngồi cạnh kỹ thuật viên và luyện gõ nhanh cho đến khi lỗi hiện ra theo lệnh. Cơ chế là lỗi tranh chấp thời gian: việc chỉnh nam châm và dòng điện mất khoảng tám giây, nếu người vận hành sửa lệnh trong lúc đó, màn hình hiện e nhưng dòng điện vẫn ở mức tia X. Máy đo của Hager vượt bốn nghìn rad, AECL về sau đo được hai mươi lăm nghìn rad, còn màn hình lại báo thiếu liều. Ngày 15 tháng 4 AECL gửi thư hướng dẫn nhổ phím mũi tên lên và dán băng keo điện, FDA bác thư vì không nói rõ lỗi và mối nguy.

1987: Yakima và một lỗi khác

Tháng 1 năm 1987 ở Yakima, một bệnh nhân nam bị quá liều với những vệt sọc song song giống ca cuối năm 1985. Lần này không có phím mũi tên hay tám giây: một biến đếm dài một byte quay về số không ở lần thứ 256, và đúng lúc ấy máy bỏ qua bước kiểm tra vị trí bàn xoay. Ông mất ba tháng sau. Người phụ trách chất lượng của công ty thừa nhận các thay đổi lên kế hoạch sau Tyler lẽ ra đã ngăn được vụ này, chỉ là chúng chưa được lắp.

1987–1994: phán quyết và hậu quả

Tháng 2 năm 1987 FDA tuyên bố máy khiếm khuyết và khuyến cáo ngừng dùng cho điều trị thường quy; Canada làm theo. Tháng 3 năm 1987 những người dùng họp ở Toronto, xin mã nguồn và nhật ký kiểm tra nhưng không được, rồi biểu quyết đòi một giải pháp phần cứng độc lập. Kế hoạch khắc phục được viết lại năm lần, và bản chốt mùa hè 1987 bỏ treatment pause cho lỗi liều, thêm mạch ngắt tia, ổ khoá bàn xoay, công tắc chân, hai mươi ba thay đổi phần mềm, cùng cam kết thay các thông báo lỗi khó hiểu bằng thông báo có nghĩa.

Năm 1990 nước Mỹ sửa luật để chính cơ sở y tế phải báo cáo sự cố thiết bị; trước đó cơ quan kiểm toán Quốc hội chỉ ra FDA biết chưa đến một phần trăm số ca chết hoặc bị thương nặng vì thiết bị. Năm 1993 Nancy Leveson và một cộng sự công bố bản điều tra dài, từ đó Therac-25 thành bài học bắt buộc trong các lớp kỹ thuật phần mềm.

Điều còn tranh cãi hoặc cần thận trọng

  • Số người chết: nhiều nơi nói ba hoặc bốn người. Điều chắc chắn hơn là sáu ca quá liều nặng, ít nhất ba ca tử vong gắn với quá liều.
  • Nguyên nhân: chỉ vụ Tyler và vụ Yakima năm 1987 tìm ra lỗi chắc chắn. Nguyên nhân ở Georgia, Hamilton và Yakima lần đầu đến nay vẫn là phỏng đoán. Malfunction 54 cũng không phải mã riêng của lỗi tám giây.
  • Độ tin cậy của lời kể: gần như mọi câu chuyện, kể cả bài này, đều dựa vào bản điều tra của Leveson, người từng làm nhân chứng chuyên môn trong các vụ kiện. Những chi tiết như cuộc gọi cảnh cáo phỉ báng hay câu nói về việc biến máy thành vũ khí chỉ là lời kể của một phía.

Vì sao câu chuyện này đáng nhớ?

Bệnh nhân của Therac-25 không chết chỉ vì một dòng mã. Lỗi tám giây từng tồn tại trên Therac-20 mà chỉ làm nổ cầu chì; nó giết người khi ổ khoá phần cứng bị gỡ đi và khi tiếng kêu của người bệnh bị đáp lại bằng hai chữ không thể. Leveson tóm gọn: luôn còn một con lỗi nữa, nên an toàn không thể đặt cược vào chuyện bắt hết lỗi mà phải nằm ở các lớp chặn độc lập và ở một đôi tai chịu nghe.

Ngày nay AI đọc phim, gợi ý liều thuốc và xếp thứ tự bệnh nhân cấp cứu. Thông báo của chúng trơn tru hơn Malfunction 54, nhưng vẫn là một dòng chữ đứng giữa người vận hành và người bệnh. Hai câu hỏi cũ vẫn còn nguyên: phía sau còn cầu chì nào không, và khi có người nói máy sai rồi thì lời ấy có được nghe không.

Câu hỏi thường gặp

Therac-25 là gì?

Đây là máy gia tốc xạ trị do công ty AECL của Canada làm ra, ra đời sau khi hợp tác với hãng Pháp kết thúc năm 1981. Một máy làm được cả chùm electron và tia X, và được điều khiển bằng phần mềm ngay từ đầu.

Therac-25 gây ra bao nhiêu ca tử vong?

Người ta hay nói ba hoặc bốn người chết, nhưng chắc chắn hơn là sáu ca quá liều nặng, trong đó ít nhất ba ca tử vong gắn với quá liều. Bệnh nhân ở Hamilton được ghi nhận chết vì ung thư.

Malfunction 54 nghĩa là gì?

Đó là thông báo lỗi liều, không phải mã riêng của lỗi tám giây. Nó chỉ cho biết liều sai, cao hoặc thấp, và sổ tay vận hành không giải thích các mã số này.

Lỗi phần mềm của Therac-25 hoạt động ra sao?

Khi người vận hành gõ nhầm tia X rồi sửa lại thành electron trong khoảng tám giây máy đang chỉnh nam châm và dòng điện, bàn xoay chuyển sang vị trí electron nhưng dòng điện vẫn ở mức tia X. Chùm electron mạnh gấp chừng trăm lần đi thẳng vào người bệnh.

Vì sao cùng một lỗi trên Therac-20 không gây chết người?

Therac-20 vẫn có các khoá phần cứng độc lập. Ở đó lỗi chỉ làm nổ cầu chì, theo lời nhà vật lý Frank Borger ở Đại học Chicago.

Sau vụ việc, điều gì đã thay đổi?

Bản khắc phục cuối bỏ chế độ treatment pause cho lỗi liều, thêm mạch phần cứng ngắt tia và ổ khoá cho bàn xoay. Năm 1990 Mỹ buộc các cơ sở y tế phải báo cáo sự cố thiết bị.

Nguồn tham khảo

  • N. Leveson và C. Turner, An Investigation of the Therac-25 Accidents, IEEE Computer 26(7), 7/1993 — bản đọc trực tuyến
  • B. W. Rose, Fatal Dose, Saturday Night, 6/1994 — bản lưu ccnr.org
  • N. Leveson, The Therac-25: 30 Years Later, Computer 50(11), 2017
  • Wikipedia, mục Therac-25
  • E. Miller (FDA), The Therac-25 Experience, 1987, trích qua Leveson và Turner

Bài viết tóm tắt từ video của kênh; nội dung mang tính giới thiệu.