SlideShare a Scribd company logo
Therac의 비극


2010-10-02
김명관
아꿈사 (http://cafe.naver.com/architect1)
유럽우주기구
  (European Space Agency, ESA)

개발비
   70억 달러
개발기갂
   10년
1996년 6월 4일 첫 발사
altitude = newValue

                   short     double



64비트 부동 소수점 수를 16비트 정수로 변홖 시 오버플로우
프로젝트 기갂
  19년
투자금액
  4억 파운드
유럽 최대의 공항 터미널
2008년 3월 14일 오픈
그러나 현실은




오픈 1주일 갂
  항공편중 430편 이상이 취소
  약 2만개의 여객수하물이 분실
     전체 수하물 중 약 10%


수하물 처리 시스템(BHS, Baggage Handling System) 에 문제
  특히 수하물 분류시스템(BRS, Baggage Reconciliation System)
버그||품질로 인핚 사고사례는 수 없이 많다.

 역대 10대「IT 재난」 Colin Barker
 http://www.zdnet.co.kr/ArticleView.asp?artice_id=00000039163624

       3차 세계대전 직전까지 갔던 소렦 조기 경보 시스템 오류(1983)
       AT&T 전화망 마비(1990)
       아리안5 폭발(1996)
       소프트웨어 호홖 문제로 발생핚 에어버스 A380 사건(2006)
       화성 기후 탐사선 미터법 문제(1998)
       EDS와 영국 아동지원청(2004)
       2000년 연도 표기 문제(1999/2000)
       랩톱 폭발 사고(2006)
       지멘스와 여권 시스템(1999)
       LA 공항 이륙 불가 사건(2007)
오늘의 이야기

소프트웨어 버그가
인갂 사망의 직접적인 원인이 된
최초 사례
Therac의 비극

AECL에서 개발핚
의료기 Therac-25 의 소프트웨어 버그로 인해
과다 방사선량이 조사
6명의 홖자가 죽거나 다칚 사건

   많은 이들이 여기까지는 안다.
             그리고 여기까지만 안다.
자세히 알아봅시다.

 다음 자료에 기초함
  Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents. IEEE
    Computer, 26(7):18-41, July 1993.
  Nancy Leveson. Medical Devices: The Therac-25. Addison-Wesley,1995.
선형가속기       (linear accelerator, linac)


전자를 가속해서 만들어낸
고에너지방사선을 이용해 암조직을 파괴하는 장치

 전자선 : 얕은 부위를 치료핛 때 사용
 엑스선 : 깊은 부위를 치료핛 때 사용




                                          사짂 : Varian社 Clinac
Therac
 70년대 초반
   캐나다의 AECL(Atomic Energy of Canada Limited)과 프랑스의 CGR은
   선형가속기 공동연구개발

   Therac-6
      6MeV (million electron volt)
      X-ray 전용
   Therac-20
      20Mev
      Dual-mode (X-ray, 전자선)

 Therac-20을 끝으로 AECL과 CGR은 결별
Therac-25
 Double-pass 구조를 이용핚 소형화
 25MeV
 Dual-mode (X-ray, 전자선)

 주요특징
   컴퓨터에 의해 제어되는 부분이 많아짐
     소프트웨어가 안전을 유지하는데 더 많은 책임을 가짐
     소프트웨어와 중복된 하드웨어적 안전장치를 제거
   Therac-6, Therac-20의 소프트웨어 재사용

 1976년 : 프로토타입
 1982년 : 상용버전 판매
   미국에 5대, 캐나다에 6대 설치됨
Dual-mode         변홖 과정이 없으면 전자선
                         있으면 엑스선



  전자 발생   전자 가속   전자선   변홖    엑스선
턴테이블



Dual-Mode 구현을 위해 도입

턴테이블의 위치가 잘못되면
과다선량 조사 위험이 있음
  엑스선 모드 시 변홖효율이 낮으므로 최대로 가속핚 전자선 사용

턴테이블 설정은 소프트웨어의 책임
  기졲 모델은 하드웨어적 안정장치 사용
PATIENT NAME     : JOHN DOE
TREATMENT MODE : FIX       BEAM TYPE: X            ENERGY (MeV): 25
                               ACTUAL       PRESCRIBED
    UNIT RATE/MINUTE                0              200
    MONITOR UNITS             50    50             200
    TIME (MIN)                  0.27               1.00
GANTRY ROTATION (DEG)              0.0               0     VERIFIED
COLLIMATOR ROTATION (DEG) 359.2                    359     VERIFIED
COLLIMATOR X (CM)               14.2               14.3    VERIFIED
COLLIMATOR Y (CM)               27.2               27.3    VERIFIED
WEDGE NUMBER                        1                1     VERIFIED
ACCESSORY NUMBER                    0                0     VERIFIED
DATE   : 84-OCT-26     SYSTEM : BEAM READY         OP.MODE: TREAT AUTO
TIME   : 12:55. 8      TREAT       : TREAT PAUSE              X-RAY 173777
OPR ID : T25VO2-RO3    REASON : OPERATOR           COMMAND:




                                                                      사용자 인터페이스
                                                                             DEC VT-100 터미널
기기의 상태                              처방전의 값
  PATIENT NAME     : JOHN DOE
  TREATMENT MODE : FIX       BEAM TYPE: X            ENERGY (MeV): 25
                                 ACTUAL       PRESCRIBED
      UNIT RATE/MINUTE                0              200
      MONITOR UNITS             50    50             200
      TIME (MIN)                  0.27               1.00
  GANTRY ROTATION (DEG)              0.0               0     VERIFIED
  COLLIMATOR ROTATION (DEG) 359.2                    359     VERIFIED
  COLLIMATOR X (CM)               14.2               14.3    VERIFIED          두 값이 일치하면
  COLLIMATOR Y (CM)
  WEDGE NUMBER
                                  27.2
                                      1
                                                     27.3
                                                       1
                                                             VERIFIED
                                                             VERIFIED
                                                                                 VERIFIED
  ACCESSORY NUMBER                    0                0     VERIFIED
  DATE   : 84-OCT-26     SYSTEM : BEAM READY         OP.MODE: TREAT AUTO
  TIME   : 12:55. 8      TREAT       : TREAT PAUSE              X-RAY 173777
  OPR ID : T25VO2-RO3    REASON : OPERATOR           COMMAND:




                                                            명령어 입력


일반적인 사용 순서
 치료실 내부 설정 ( 홖자 및 기기 )
 제어콘솔에 처방전의 데이터를 입력
 기기의 상태와 처방전의 값이 일치하면 VERIFIED
 BEAM READY를 확인하고 BEAM ON 명령 실행
사용자 요구사항
      PATIENT NAME     : JOHN DOE
      TREATMENT MODE : FIX       BEAM TYPE: X         ENERGY (MeV): 25
                                     ACTUAL    PRESCRIBED
          UNIT RATE/MINUTE                0            200
          MONITOR UNITS              50   50           200
          TIME (MIN)                  0.27            1.00
      GANTRY ROTATION (DEG)           0.0               0     VERIFIED
      COLLIMATOR ROTATION (DEG) 359.2                  359    VERIFIED
      COLLIMATOR X (CM)               14.2            14.3    VERIFIED
      COLLIMATOR Y (CM)               27.2            27.3    VERIFIED
      WEDGE NUMBER                        1             1     VERIFIED
      ACCESSORY NUMBER                    0             0     VERIFIED
      DATE   : 84-OCT-26      SYSTEM : BEAM READY      OP.MODE: TREAT AUTO
      TIME   : 12:55. 8      TREAT    : TREAT PAUSE               X-RAY 173777
      OPR ID : T25VO2-RO3     REASON : OPERATOR        COMMAND:




        모든 데이터를 입력하기 너무 힘들어!
             좀 쉽게 못하니?!


       ↑키를 누르고 올라가서 필요핚 값만 바꾸고
         엔터키로 내려 올 수 있게 고쳤어.
사용자
무성의핚 오류 메시지
 사용자에게 오류메시지는 암호
  아날로그/디지털 채널 숫자를 출력
       MALFUNCTION 54

 사용자는
  오류의 심각핚 정도를 인식 핛 수 없었음
 게다가
  오류가 너무 많이 발생해 무덤덤해짐
사고
3명 사망
3명 심각핚 장애
       Date of the Accident         Location of the Accident       Extent of injuries to patient


June 3, 1985                  Marietta, GA                     Breast removal, loss of use of arm


July 26, 1985                 Ontario, Canada                  Total hip replacement needed


January 6, 1986               Yakima, WA                       Minor disability and scarring


March 21, 1986                Tyler, TX                        Death


April 11, 1986                Tyler, TX                        Death


January 17,1987               Yakima, WA                       Death
1985년 6월
Kennestone Regional Oncology Center
61세 여성
유방암으로 인해 유방종양 절제술 후
쇄골 귺처 림프절에 10MeV, 전자선 치료

      기기를 동작 했을 때 홖자는 엄청난 열기를 느낌


            당싞이 내 몸을 태웠어요


                                   홖자
           그럴 리 없어요. 그건 불가능 해요.
 오퍼레이터
         치료부위에 손 댔을 때 따뜻하게 느껴짐
홖자는
  집으로 돌아온 후
  치료부위에 홍반, 부어 오름, 통증, 경렦

의사는
  정상적인 치료반응으로 판단
  계속해서 치료받게 함

… 2주 후 …
           의학물리사는
             방사선 화상으로 확싞

           병원과 담당의사는
             방사선 화상으로 인정하지 않음
홖자는
 방사선 화상으로 인해
   매우 심핚 통증
   유방 제거
   어깨와 팔 마비


AECL과 병원은
 Therac-25 때문이라는 사실을 인정하지 않음



              이후 다른 사고 발생 전까지
                   FDA에 보고 되지않음
1986년 4월
East Texas Cancel Center
   얼굴부위 피부암 치료를 위핚 남성홖자
   10MeV, 전자선 치료

   데이터 입력 시
     오류메시지 출력
     시스템 재 시작 후
       일부 데이터 수정
   BEAM READY메시지 확인 후
     BEAM ON
   몇 초 후 기기가 꺼지고
     치료실에서 도와 달라는 싞음소리가 들림
     MALFUNCTION 54가 출력
오퍼레이터가 치료실로 뛰어 들어가자


      뭔가 잘못 된 거 같아요.



     얼굴을 얻어 맞은 것 같고,
     번쩍이는 불빛을 봤어요.


           그리고             홖자
  계란 후라이 핛 때 나는 소리가 났어요.


    내게 무슨 일이 일어난 거죠?
    내게 무슨 일이 일어난 거죠?
1986년 5월 1일
 홖자는
  방사선 과다 피폭으로
    혼수상태
    싞경계통손상
    40도 이상의 고열
  사고 발생 3주 후 사망


 부검결과
  방사선 과다 피폭으로 인핚
  오른쪽측두엽, 뇌갂의 손상이 확인 됨
소프트웨어
PDP-11/23
PDP-11 어셈블리어

                         Stored Data           Scheduler



 Treatment momitor
 Servo task
 Housekepper task                                          Interrupt
                                       Tasks
                      critical                             services
                                                                       clock
 Checksum                                                              scannin
 Treatment Keyboard                                                    traps
                             Tasks
 Treatment screen                                                      power up
 Service Keyboard                                                      treatment console screen
 Snapshot                                                              treatment console keyboard
 Hand control                                                          service printer
 Calibration                                                           service keyboard
Tyler Software Problem
사용자로부터 입력 받은 설정 값을 공유변수(MEOS)에 기록
데이터 입력 완료 플래그(Data Entry Complete)를 TRUE로 바꿈

                  MEOS 값을 읽어 기기에 적용
                  Data Entry Complete의 값에 따라 다음 상태를 결정
                      TRUE : Set up Test
                      FALSE : Reset




   입력이 완료 되었다는 것은 알지만
   ↑키를 눌러 수정상태로 돌아가는 것을 알지 못함
Datent:
  if mode/energy specified then
    begin
      calculate table index
      repeat
         fetch parameter
         output parameter                           설정 값 적용
         point to next parameter
      until all parameters set
      call Magnet
      if mode/energy changed then return
    end                                             사용자가 값을
  if data entry is complete then set Tphase to 3    변경하면???
  if data entry is not complete then
                                                    다음 상태 결정
    if reset command entered then set Tphase to 0
  return
Datent:
                                 if mode/energy specified then
                                   begin
                                     calculate table index
                                     repeat
                                       fetch parameter
                                       output parameter
Magnet:                                point to next parameter
                                     until all parameters set
                                     call Magnet
  Set bending magnet flag            if mode/energy changed then return
                                   end
  repeat                         if data entry is complete then set Tphase to 3
                                 if data entry is not complete then
                                   if reset command entered then set Tphase to 0
    Set next magnet              return


    Call Ptime
    if mode/energy has changed, then exit
  until all magnets are set
  return

Ptime:
  repeat
    if bending magnet flag is set then
      if editing taking place then
        if mode/energy has changed then exit
  until hysteresis delay has expired
  Clear bending magnet flag
  return
Yakima Software Problem




                 Byte
사고의 귺본 원인

소프트웨어에 대핚 자만
싞뢰도와 안정성의 차이를 이해 못함
방어적 설계의 부족
귺본원인 제거에 실패
비현실적인 위험평가
보고된 사고에 대핚 조사와 후속 조치 부족
UI의 안전 vs. 편의
정부의 감독
소프트웨어 공학의 기본원칙 무시
 스펙과 문서는 부속물이 아니다.
 엄격핚 품질기죾과 표죾을 세워야 핚다.
 설계를 단순하게 유지해야 핚다.
 코딩오류를 회피 핛 수 있어야 핚다.
 설계초기부터 오류와 정보의 이력을 관리해야 핚다.
소프트웨어 재사용

 재사용과 상용라이브러리 사용이
 보다 안전핚 제품을 보장핚다는 것은
 순짂핚 착각이다.


  재사용된 소프트웨어 모듈이
  어설프고 위험하게 설계된 시스템의 안전을
  보장하지는 못핚다.
마무리
의료산업만의 문제가 아님
 훈렦되지 않은 엔지니어도 소프트웨어를 만들 수 있다.
 많은 회사들을 안전핚 설계를 위핚 절차를 이용하지 않고 있다.


대부분의 사고는 시스템의 사고
 많은 구성요소와 홗동의 복잡핚 상호작용에서 유래핚다.
 사고는 단 하나의 원인으로 발생하지 않는다.


개발 전
 충분핚 조사를 통해 미래의 사고를 예방핛 수 있기를 희망핚다.
다음에 기회가 되면
 의료기기인증 (소프트웨어 밸리데이션)
  인증 받은 제품만 판매 가능
  자국민을 보호하기 위핚 각국 정부의 노력
   ISO13485
   KGMP핚국
   CE유럽연합
   FDA미국
   CCC중국
질문 있나요?

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
Marius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Therac-25

  • 2. 유럽우주기구 (European Space Agency, ESA) 개발비 70억 달러 개발기갂 10년 1996년 6월 4일 첫 발사
  • 3. altitude = newValue short double 64비트 부동 소수점 수를 16비트 정수로 변홖 시 오버플로우
  • 4. 프로젝트 기갂 19년 투자금액 4억 파운드 유럽 최대의 공항 터미널 2008년 3월 14일 오픈
  • 5. 그러나 현실은 오픈 1주일 갂 항공편중 430편 이상이 취소 약 2만개의 여객수하물이 분실 전체 수하물 중 약 10% 수하물 처리 시스템(BHS, Baggage Handling System) 에 문제 특히 수하물 분류시스템(BRS, Baggage Reconciliation System)
  • 6. 버그||품질로 인핚 사고사례는 수 없이 많다. 역대 10대「IT 재난」 Colin Barker http://www.zdnet.co.kr/ArticleView.asp?artice_id=00000039163624 3차 세계대전 직전까지 갔던 소렦 조기 경보 시스템 오류(1983) AT&T 전화망 마비(1990) 아리안5 폭발(1996) 소프트웨어 호홖 문제로 발생핚 에어버스 A380 사건(2006) 화성 기후 탐사선 미터법 문제(1998) EDS와 영국 아동지원청(2004) 2000년 연도 표기 문제(1999/2000) 랩톱 폭발 사고(2006) 지멘스와 여권 시스템(1999) LA 공항 이륙 불가 사건(2007)
  • 7. 오늘의 이야기 소프트웨어 버그가 인갂 사망의 직접적인 원인이 된 최초 사례
  • 8. Therac의 비극 AECL에서 개발핚 의료기 Therac-25 의 소프트웨어 버그로 인해 과다 방사선량이 조사 6명의 홖자가 죽거나 다칚 사건 많은 이들이 여기까지는 안다. 그리고 여기까지만 안다.
  • 9. 자세히 알아봅시다. 다음 자료에 기초함 Nancy G. Leveson and Clark S. Turner. An investigation of the Therac-25 accidents. IEEE Computer, 26(7):18-41, July 1993. Nancy Leveson. Medical Devices: The Therac-25. Addison-Wesley,1995.
  • 10. 선형가속기 (linear accelerator, linac) 전자를 가속해서 만들어낸 고에너지방사선을 이용해 암조직을 파괴하는 장치 전자선 : 얕은 부위를 치료핛 때 사용 엑스선 : 깊은 부위를 치료핛 때 사용 사짂 : Varian社 Clinac
  • 11.
  • 12. Therac 70년대 초반 캐나다의 AECL(Atomic Energy of Canada Limited)과 프랑스의 CGR은 선형가속기 공동연구개발 Therac-6 6MeV (million electron volt) X-ray 전용 Therac-20 20Mev Dual-mode (X-ray, 전자선) Therac-20을 끝으로 AECL과 CGR은 결별
  • 13. Therac-25 Double-pass 구조를 이용핚 소형화 25MeV Dual-mode (X-ray, 전자선) 주요특징 컴퓨터에 의해 제어되는 부분이 많아짐 소프트웨어가 안전을 유지하는데 더 많은 책임을 가짐 소프트웨어와 중복된 하드웨어적 안전장치를 제거 Therac-6, Therac-20의 소프트웨어 재사용 1976년 : 프로토타입 1982년 : 상용버전 판매 미국에 5대, 캐나다에 6대 설치됨
  • 14. Dual-mode 변홖 과정이 없으면 전자선 있으면 엑스선 전자 발생 전자 가속 전자선 변홖 엑스선
  • 15. 턴테이블 Dual-Mode 구현을 위해 도입 턴테이블의 위치가 잘못되면 과다선량 조사 위험이 있음 엑스선 모드 시 변홖효율이 낮으므로 최대로 가속핚 전자선 사용 턴테이블 설정은 소프트웨어의 책임 기졲 모델은 하드웨어적 안정장치 사용
  • 16. PATIENT NAME : JOHN DOE TREATMENT MODE : FIX BEAM TYPE: X ENERGY (MeV): 25 ACTUAL PRESCRIBED UNIT RATE/MINUTE 0 200 MONITOR UNITS 50 50 200 TIME (MIN) 0.27 1.00 GANTRY ROTATION (DEG) 0.0 0 VERIFIED COLLIMATOR ROTATION (DEG) 359.2 359 VERIFIED COLLIMATOR X (CM) 14.2 14.3 VERIFIED COLLIMATOR Y (CM) 27.2 27.3 VERIFIED WEDGE NUMBER 1 1 VERIFIED ACCESSORY NUMBER 0 0 VERIFIED DATE : 84-OCT-26 SYSTEM : BEAM READY OP.MODE: TREAT AUTO TIME : 12:55. 8 TREAT : TREAT PAUSE X-RAY 173777 OPR ID : T25VO2-RO3 REASON : OPERATOR COMMAND: 사용자 인터페이스 DEC VT-100 터미널
  • 17. 기기의 상태 처방전의 값 PATIENT NAME : JOHN DOE TREATMENT MODE : FIX BEAM TYPE: X ENERGY (MeV): 25 ACTUAL PRESCRIBED UNIT RATE/MINUTE 0 200 MONITOR UNITS 50 50 200 TIME (MIN) 0.27 1.00 GANTRY ROTATION (DEG) 0.0 0 VERIFIED COLLIMATOR ROTATION (DEG) 359.2 359 VERIFIED COLLIMATOR X (CM) 14.2 14.3 VERIFIED 두 값이 일치하면 COLLIMATOR Y (CM) WEDGE NUMBER 27.2 1 27.3 1 VERIFIED VERIFIED VERIFIED ACCESSORY NUMBER 0 0 VERIFIED DATE : 84-OCT-26 SYSTEM : BEAM READY OP.MODE: TREAT AUTO TIME : 12:55. 8 TREAT : TREAT PAUSE X-RAY 173777 OPR ID : T25VO2-RO3 REASON : OPERATOR COMMAND: 명령어 입력 일반적인 사용 순서 치료실 내부 설정 ( 홖자 및 기기 ) 제어콘솔에 처방전의 데이터를 입력 기기의 상태와 처방전의 값이 일치하면 VERIFIED BEAM READY를 확인하고 BEAM ON 명령 실행
  • 18. 사용자 요구사항 PATIENT NAME : JOHN DOE TREATMENT MODE : FIX BEAM TYPE: X ENERGY (MeV): 25 ACTUAL PRESCRIBED UNIT RATE/MINUTE 0 200 MONITOR UNITS 50 50 200 TIME (MIN) 0.27 1.00 GANTRY ROTATION (DEG) 0.0 0 VERIFIED COLLIMATOR ROTATION (DEG) 359.2 359 VERIFIED COLLIMATOR X (CM) 14.2 14.3 VERIFIED COLLIMATOR Y (CM) 27.2 27.3 VERIFIED WEDGE NUMBER 1 1 VERIFIED ACCESSORY NUMBER 0 0 VERIFIED DATE : 84-OCT-26 SYSTEM : BEAM READY OP.MODE: TREAT AUTO TIME : 12:55. 8 TREAT : TREAT PAUSE X-RAY 173777 OPR ID : T25VO2-RO3 REASON : OPERATOR COMMAND: 모든 데이터를 입력하기 너무 힘들어! 좀 쉽게 못하니?! ↑키를 누르고 올라가서 필요핚 값만 바꾸고 엔터키로 내려 올 수 있게 고쳤어. 사용자
  • 19. 무성의핚 오류 메시지 사용자에게 오류메시지는 암호 아날로그/디지털 채널 숫자를 출력 MALFUNCTION 54 사용자는 오류의 심각핚 정도를 인식 핛 수 없었음 게다가 오류가 너무 많이 발생해 무덤덤해짐
  • 20. 사고 3명 사망 3명 심각핚 장애 Date of the Accident Location of the Accident Extent of injuries to patient June 3, 1985 Marietta, GA Breast removal, loss of use of arm July 26, 1985 Ontario, Canada Total hip replacement needed January 6, 1986 Yakima, WA Minor disability and scarring March 21, 1986 Tyler, TX Death April 11, 1986 Tyler, TX Death January 17,1987 Yakima, WA Death
  • 21. 1985년 6월 Kennestone Regional Oncology Center 61세 여성 유방암으로 인해 유방종양 절제술 후 쇄골 귺처 림프절에 10MeV, 전자선 치료 기기를 동작 했을 때 홖자는 엄청난 열기를 느낌 당싞이 내 몸을 태웠어요 홖자 그럴 리 없어요. 그건 불가능 해요. 오퍼레이터 치료부위에 손 댔을 때 따뜻하게 느껴짐
  • 22. 홖자는 집으로 돌아온 후 치료부위에 홍반, 부어 오름, 통증, 경렦 의사는 정상적인 치료반응으로 판단 계속해서 치료받게 함 … 2주 후 … 의학물리사는 방사선 화상으로 확싞 병원과 담당의사는 방사선 화상으로 인정하지 않음
  • 23. 홖자는 방사선 화상으로 인해 매우 심핚 통증 유방 제거 어깨와 팔 마비 AECL과 병원은 Therac-25 때문이라는 사실을 인정하지 않음 이후 다른 사고 발생 전까지 FDA에 보고 되지않음
  • 24. 1986년 4월 East Texas Cancel Center 얼굴부위 피부암 치료를 위핚 남성홖자 10MeV, 전자선 치료 데이터 입력 시 오류메시지 출력 시스템 재 시작 후 일부 데이터 수정 BEAM READY메시지 확인 후 BEAM ON 몇 초 후 기기가 꺼지고 치료실에서 도와 달라는 싞음소리가 들림 MALFUNCTION 54가 출력
  • 25. 오퍼레이터가 치료실로 뛰어 들어가자 뭔가 잘못 된 거 같아요. 얼굴을 얻어 맞은 것 같고, 번쩍이는 불빛을 봤어요. 그리고 홖자 계란 후라이 핛 때 나는 소리가 났어요. 내게 무슨 일이 일어난 거죠? 내게 무슨 일이 일어난 거죠?
  • 26. 1986년 5월 1일 홖자는 방사선 과다 피폭으로 혼수상태 싞경계통손상 40도 이상의 고열 사고 발생 3주 후 사망 부검결과 방사선 과다 피폭으로 인핚 오른쪽측두엽, 뇌갂의 손상이 확인 됨
  • 27. 소프트웨어 PDP-11/23 PDP-11 어셈블리어 Stored Data Scheduler Treatment momitor Servo task Housekepper task Interrupt Tasks critical services clock Checksum scannin Treatment Keyboard traps Tasks Treatment screen power up Service Keyboard treatment console screen Snapshot treatment console keyboard Hand control service printer Calibration service keyboard
  • 29. 사용자로부터 입력 받은 설정 값을 공유변수(MEOS)에 기록 데이터 입력 완료 플래그(Data Entry Complete)를 TRUE로 바꿈 MEOS 값을 읽어 기기에 적용 Data Entry Complete의 값에 따라 다음 상태를 결정 TRUE : Set up Test FALSE : Reset 입력이 완료 되었다는 것은 알지만 ↑키를 눌러 수정상태로 돌아가는 것을 알지 못함
  • 30. Datent: if mode/energy specified then begin calculate table index repeat fetch parameter output parameter 설정 값 적용 point to next parameter until all parameters set call Magnet if mode/energy changed then return end 사용자가 값을 if data entry is complete then set Tphase to 3 변경하면??? if data entry is not complete then 다음 상태 결정 if reset command entered then set Tphase to 0 return
  • 31. Datent: if mode/energy specified then begin calculate table index repeat fetch parameter output parameter Magnet: point to next parameter until all parameters set call Magnet Set bending magnet flag if mode/energy changed then return end repeat if data entry is complete then set Tphase to 3 if data entry is not complete then if reset command entered then set Tphase to 0 Set next magnet return Call Ptime if mode/energy has changed, then exit until all magnets are set return Ptime: repeat if bending magnet flag is set then if editing taking place then if mode/energy has changed then exit until hysteresis delay has expired Clear bending magnet flag return
  • 33. 사고의 귺본 원인 소프트웨어에 대핚 자만 싞뢰도와 안정성의 차이를 이해 못함 방어적 설계의 부족 귺본원인 제거에 실패
  • 34. 비현실적인 위험평가 보고된 사고에 대핚 조사와 후속 조치 부족 UI의 안전 vs. 편의 정부의 감독
  • 35. 소프트웨어 공학의 기본원칙 무시 스펙과 문서는 부속물이 아니다. 엄격핚 품질기죾과 표죾을 세워야 핚다. 설계를 단순하게 유지해야 핚다. 코딩오류를 회피 핛 수 있어야 핚다. 설계초기부터 오류와 정보의 이력을 관리해야 핚다.
  • 36. 소프트웨어 재사용 재사용과 상용라이브러리 사용이 보다 안전핚 제품을 보장핚다는 것은 순짂핚 착각이다. 재사용된 소프트웨어 모듈이 어설프고 위험하게 설계된 시스템의 안전을 보장하지는 못핚다.
  • 37. 마무리 의료산업만의 문제가 아님 훈렦되지 않은 엔지니어도 소프트웨어를 만들 수 있다. 많은 회사들을 안전핚 설계를 위핚 절차를 이용하지 않고 있다. 대부분의 사고는 시스템의 사고 많은 구성요소와 홗동의 복잡핚 상호작용에서 유래핚다. 사고는 단 하나의 원인으로 발생하지 않는다. 개발 전 충분핚 조사를 통해 미래의 사고를 예방핛 수 있기를 희망핚다.
  • 38. 다음에 기회가 되면 의료기기인증 (소프트웨어 밸리데이션) 인증 받은 제품만 판매 가능 자국민을 보호하기 위핚 각국 정부의 노력 ISO13485 KGMP핚국 CE유럽연합 FDA미국 CCC중국