KR102495549B1 - 복수의 장치의 제어 - Google Patents
복수의 장치의 제어 Download PDFInfo
- Publication number
- KR102495549B1 KR102495549B1 KR1020177031975A KR20177031975A KR102495549B1 KR 102495549 B1 KR102495549 B1 KR 102495549B1 KR 1020177031975 A KR1020177031975 A KR 1020177031975A KR 20177031975 A KR20177031975 A KR 20177031975A KR 102495549 B1 KR102495549 B1 KR 102495549B1
- Authority
- KR
- South Korea
- Prior art keywords
- subsystem
- patient
- software version
- software
- action
- Prior art date
Links
Images
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/30—Surgical robots
- A61B34/35—Surgical robots for telesurgery
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/30—Surgical robots
- A61B34/37—Master-slave robots
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B17/00234—Surgical instruments, devices or methods, e.g. tourniquets for minimally invasive surgery
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/10—Computer-aided planning, simulation or modelling of surgical operations
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/25—User interfaces for surgical systems
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/70—Manipulators specially adapted for use in surgery
- A61B34/74—Manipulators with manual electric input means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/40—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the management of medical equipment or devices, e.g. scheduling maintenance or upgrades
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H40/00—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices
- G16H40/60—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices
- G16H40/67—ICT specially adapted for the management or administration of healthcare resources or facilities; ICT specially adapted for the management or operation of medical equipment or devices for the operation of medical equipment or devices for remote operation
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B2017/00017—Electrical control of surgical instruments
- A61B2017/00199—Electrical control of surgical instruments with a console, e.g. a control panel with a display
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B2017/00017—Electrical control of surgical instruments
- A61B2017/00212—Electrical control of surgical instruments using remote controls
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B2017/00017—Electrical control of surgical instruments
- A61B2017/00221—Electrical control of surgical instruments with wireless transmission of data, e.g. by infrared radiation or radiowaves
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B17/00—Surgical instruments, devices or methods, e.g. tourniquets
- A61B2017/00017—Electrical control of surgical instruments
- A61B2017/00225—Systems for controlling multiple different instruments, e.g. microsurgical systems
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/25—User interfaces for surgical systems
- A61B2034/258—User interfaces for surgical systems providing specific settings for specific users
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/30—Surgical robots
- A61B2034/304—Surgical robots including a freely orientable platform, e.g. so called 'Stewart platforms'
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/70—Manipulators specially adapted for use in surgery
- A61B34/74—Manipulators with manual electric input means
- A61B2034/743—Keyboards
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B34/00—Computer-aided surgery; Manipulators or robots specially adapted for use in surgery
- A61B34/70—Manipulators specially adapted for use in surgery
- A61B34/74—Manipulators with manual electric input means
- A61B2034/744—Mouse
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B90/00—Instruments, implements or accessories specially adapted for surgery or diagnosis and not covered by any of the groups A61B1/00 - A61B50/00, e.g. for luxation treatment or for protecting wound edges
- A61B90/90—Identification means for patients or instruments, e.g. tags
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Surgery (AREA)
- Biomedical Technology (AREA)
- Public Health (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Robotics (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Animal Behavior & Ethology (AREA)
- Molecular Biology (AREA)
- Veterinary Medicine (AREA)
- Heart & Thoracic Surgery (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Primary Health Care (AREA)
- Epidemiology (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 수술 시스템을 제어하는 방법, 시스템 및 장치를 개시한다. 하나의 실시형태에서, 상기 방법이 수술 시스템과 관련된 제어 서브시스템에서, 제어 서브시스템에 통신가능하게 결합되어 있고 제어 서브시스템에 의해 제어되는 제1 환자측 서브시스템으로부터 하드웨어 구성 정보를 입수하는 조치를 포함하고; 제어 서브시스템과 제1 환자측 서브시스템에 의해 사용될 소프트웨어 버전을 결정하는 조치를 포함하고, 소프트웨어 버전을 결정하는 것이 복수의 소프트웨어 버전 중에서 상기 소프트웨어 버전을 선택하는 조치를 포함하고, 상기 복수의 소프트웨어 버전의 각각의 소프트웨어 버전이 특정 환자측 서브시스템과 관련되어 있고; 제1 환자측 서브시스템에게 상기 소프트웨어 버전을 사용할 것을 명령하는 조치를 포함하고; 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있는지 여부를 결정하는 조치를 포함하고; 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있지 않다고 결정하는 것에 대응하여, 상기 소프트웨어 버전을 상기 제어 서브시스템에 로딩하는 조치를 포함하고; 그리고 수술 시스템을 초기화하는 조치를 포함한다.
Description
본 특허 출원은 전체 내용이 인용에 의해 본 명세서에 포함되어 있는 2015년 7월 7일자로 출원되고, 발명의 명칭이 "복수의 장치의 제어(CONTROL OF MULTIPLE 장치)"인 미국 가특허 출원 제62/189,523호에 대한 우선권 주장 출원이다.
본 명세서는 제어 시스템에 관한 것이다.
최소 침습 의료 기술은 진단 과정이나 수술 과정에서 손상되는 진단이나 수술과 무관한 조직의 양을 감소시켜서, 환자 회복 시간, 불편함, 그리고 유해한 부작용을 감소시키기 위한 것이다. 미국에서는 매년 수 백만건의 수술이 시행된다. 이들 수술 중의 많은 수술이 어쩌면 최소 침습 방식으로 시행될 수 있다.
수술에 사용되는 최소 침습 시스템은 원격조종식, 로봇식, 또는 원격조종식 및 로봇식으로 될 수 있다. 원격조종이란 일정 거리를 두고 기계를 제어하는 작용을 지칭한다. 원격조종식 수술 시스템에서는, 외과의사가 손으로 직접 수술 기기를 쥐고 이동시키는 것이 아니라 컨트롤러를 이용하여 체강속으로 삽입된 수술 기기를 제어한다.
일반적으로, 본 명세서에 기술된 발명의 한 가지 혁신적인 실시형태는, 수술 시스템과 관련된 제어 서브시스템에서, 제어 서브시스템에 통신가능하게 결합되어 있고 제어 서브시스템에 의해 제어되는 수술 시스템의 제1 환자측 서브시스템으로부터 하드웨어 구성 정보를 입수하는 조치(action)를 포함하고; 제어 서브시스템과 제1 환자측 서브시스템에 의해 사용될 소프트웨어 버전을 결정하는 조치를 포함하고, 소프트웨어 버전을 결정하는 조치는 복수의 소프트웨어 버전 중에서 상기 소프트웨어 버전을 선택하는 조치를 포함하고, 상기 복수의 소프트웨어 버전의 각각의 소프트웨어 버전이 특정 환자측 서브시스템과 관련되어 있고; 제1 환자측 서브시스템에게 상기 소프트웨어 버전을 사용할 것을 명령하는 조치를 포함하고; 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있는지 여부를 결정하는 조치를 포함하고; 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있지 않다고 결정하는 것에 대응하여, 상기 소프트웨어 버전을 상기 제어 서브시스템에 로딩하는 조치를 포함하고; 상기 제어 서브시스템과 제1 환자측 서브시스템에 로딩된 소프트웨어 버전의 유효성을 검증하는 조치를 포함하고; 그리고 수술 시스템을 상기 소프트웨어 버전으로 초기화하는 조치를 포함하는 방법으로 구현될 수 있다.
이 실시형태의 다른 실시례는 상기 방법의 조치들을 수행하도록 각각 구성된 대응하는 컴퓨터 시스템, 장치, 그리고 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템이 특정 작업(operation) 또는 조치(action)를 수행하도록 구성되어 있다는 것은, 작동 중에 상기 시스템으로 하여 상기 작업 또는 조치를 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 결합 형태를 상기 시스템에 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 상기 하나 이상의 컴퓨터 프로그램이 데이터 프로세싱 장치에 의해서 실행될 때, 상기 장치로 하여 상기 작업 또는 조치를 수행하게 하는 명령을 포함하는 것을 의미한다.
상기의 실시례 및 다른 실시례는 각각 선택적으로 아래의 특징들의 하나 이상을, 단독으로 또는 결합하여 포함할 수 있다. 특히, 하나의 실시례가 아래의 특징들 모두를 결합하여 포함할 수 있다. 상기 방법은 상기 소프트웨어 버전을 결정하기 전에 제1 환자측 서브시스템의 하드웨어 구성의 유효성을 검증하는 조치를 포함한다. 상기 하드웨어 구성의 유효성을 검증하는 조치가 상기 하드웨어 구성이 상기 제어 서브시스템과 양립가능한 것을 결정하는 조치를 포함한다. 상기 제어 서브시스템이 수술 시스템의 외과의사 콘솔의 구성요소를 포함하고, 상기 외과의사 콘솔이 수술 시스템의 오퍼레이터에게 제어 기능을 제공하도록 구성되어 있다. 제1 환자측 서브시스템은 하나 이상의 대응하는 수술 기기를 유지하고 위치시키도록 구성된 하나 이상의 머니퓰레이터를 포함하고 있다.
상기 소프트웨어 버전을 제1 환자측 서브시스템에 로딩하는 조치가, 복수의 부팅 이미지 중에서 상기 소프트웨어 버전을 포함하는 특정 부팅 이미지를 결정하는 조치; 그리고 제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 조치를 포함하고 있다. 제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 조치가, 상기 특정 부팅 이미지에 대한 제1 헤더 블록을 입수하는 조치; 입수된 제1 헤더 블록을 상기 특정 부팅 이미지에 재기록하는 조치; 현재의 부팅 이미지에 대한 제2 헤더 블록의 복사본을 저장하는 조치; 그리고 재기록하는 조치와 저장하는 조치 후에, 현재의 부팅 이미지에 대한 제2 헤더 블록을 무효화하는 조치를 포함하고 있다. 제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 조치가, 상기 특정 부팅 이미지를 식별하는 파라미터를 저장하는 조치; 부트 로더에 의해, 저장된 파라미터를 판독하는 조치; 그리고 상기 부트 로더에 의해, 저장된 파라미터에 기초하여 상기 특정 부팅 이미지를 선택하는 조치를 포함하고 있다. 상기 소프트웨어 버전을 제1 환자측 서브시스템에 로딩하는 조치가, 복수의 모듈 중에서 상기 소프트웨어 버전을 포함하는 하나 이상의 특정 모듈을 결정하는 조치; 그리고 상기 특정 모듈을 로딩하는 조치를 포함하고 있다.
상기 소프트웨어 버전을 결정하는 조치가 상기 제어 서브시스템과 제1 환자측 서브시스템 사이의 공동 작업을 기초로 한다. 상기 소프트웨어 버전의 유효성을 검증하는 조치가, 상기 제어 서브시스템과 제1 환자측 서브시스템이 상기 소프트웨어 버전을 로딩하였는지 여부를 결정하는 조치; 그리고 상기 제어 서브시스템 또는 제1 환자측 서브시스템 중의 하나 이상이 결정된 소프트웨어 버전을 로딩하지 않았다고 결정하는 것에 대응하여, 오류 메세지를 발생시키고 수술 시스템에 사용하기 위해 적어도 상기 제어 서브시스템 또는 제1 환자측 서브시스템의 초기화를 방지하는 조치를 포함하고 있다.
상기 방법은 하나 이상의 보조 장치를 수술 시스템에 결합시키는 조치를 더 포함하고, 상기 하나 이상의 보조 장치가 제1 환자측 서브시스템에 전용되는 것은 아니다. 상기 방법은 제2 환자측 서브시스템이 상기 제어 서브시스템에 통신가능하게 결합되어 있다는 것을 인식하는 조치; 제2 환자측 서브시스템에 대한 하드웨어 정보를 입수하는 조치; 제2 환자측 서브시스템의 하드웨어 정보의 유효성을 검증하는 조치; 그리고 제2 환자측 서브시스템에게 결정된 소프트웨어 버전을 로딩하라고 명령하는 조치를 더 포함하고 있다. 상기 방법은 제2 환자측 서브시스템이 상기 제어 서브시스템에 통신가능하게 결합되어 있다는 것을 인식하는 조치; 제2 환자측 서브시스템에 대한 하드웨어 정보를 입수하는 조치; 제2 환자측 서브시스템의 하드웨어 정보의 유효성을 검증하는 조치; 그리고 제2 환자측 서브시스템에 로딩된 소프트웨어에 해당하는 제2 소프트웨어 버전을 상기 제어 서브시스템에 로딩하는 조치를 더 포함하고 있다. 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩된 소프트웨어 버전에 기초하여 결정된다. 상기 소프트웨어 버전이 제1 환자측 서브시스템에 현재 로딩된 소프트웨어 버전에 기초하여 결정된다.
일반적으로, 본 명세서에 기술된 발명의 한 가지 혁신적인 실시형태는, 수술 시스템의 제1 서브시스템에서, 특정 소프트웨어 버전을 제1 서브시스템에 로딩하라는 명령을 수신하는 조치를 포함하고, 상기 특정 소프트웨어 버전은 복수의 서브시스템의 각각의 서브시스템과 관련된 복수의 소프트웨어 버전 중의 하나이고, 제1 서브시스템은 제1 서브시스템에 현재 구성되어 있는 제1 구성을 포함하는 복수의 구성을 포함하고; 상기 특정 소프트웨어 버전이 제2 구성에 배치되어 있는 것을 결정하는 조치; 제2 구성에 대응하는 데이터를 저장하는 조치; 상기 서브시스템을 제2 구성으로 구성하는 조치; 그리고 상기 특정 소프트웨어 버전을 로딩하는 조치를 포함하는 방법으로 구현될 수 있다.
이 실시형태의 다른 실시례는 상기 방법의 조치들을 수행하도록 각각 구성된 대응하는 컴퓨터 시스템, 장치, 그리고 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 작동 중에 상기 시스템으로 하여 상기 작업 또는 조치를 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 결합 형태를 상기 시스템에 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 상기 하나 이상의 컴퓨터 프로그램이 데이터 프로세싱 장치에 의해서 실행될 때, 상기 장치로 하여 상기 작업 또는 조치를 수행하게 하는 명령을 포함하는 것을 의미한다.
상기의 실시례 및 다른 실시례는 각각 선택적으로 아래의 특징들의 하나 이상을, 단독으로 또는 결합하여 포함할 수 있다. 상기 방법은 상기 특정 소프트웨어 버전을 로딩하라는 명령을 수신하는 조치에 대응하여 제2 구성을 다운로드하는 조치를 더 포함하고 있다. 제1 구성은 제1 부팅 이미지를 포함하고, 제2 구성은 제2 부팅 이미지를 포함하고, 그리고 제2 구성에 대응하는 데이터를 저장하는 조치가, 제2 부팅 이미지를 유효하게 하기 위해서 제2 부팅 이미지에 대한 제1 헤더 블록을 재기록하는 조치; 제1 부팅 이미지에 대한 제2 헤더 블록의 복사본을 저장하는 조치; 그리고 재기록하는 조치와 저장하는 조치 후에, 제1 부팅 이미지의 헤더 블록을 무효화하는 조치를 포함하고 있다.
상기 서브시스템을 구성하기 전에 인터럽트에 대응하여, 제1 부팅 이미지와 제2 부팅 이미지로부터 유효한 부팅 이미지를 결정하는 조치; 상기 서브시스템을 상기 유효한 부팅 이미지로 재부팅하는 조치; 상기 유효한 부팅 이미지가 제2 부팅 이미지인지 여부를 결정하는 조치; 그리고 상기 유효한 부팅 이미지가 제2 부팅 이미지가 아니라는 결정에 대응하여, 제1 헤더 블록을 제2 부팅 이미지에 재기록하고, 제1 부팅 이미지의 헤드 블록을 무효화하고, 상기 서브시스템을 제2 부팅 이미지로 재부팅하는 조치를 포함한다.
제1 구성은 제1 부팅 이미지를 포함하고, 제2 구성은 제2 부팅 이미지를 포함하고, 그리고 상기 서브 시스템을 제2 구성으로 재부팅하는 조치가, 부트 로더에 의해, 저장된 데이터를 판독하는 것에 의해 상기 서브 시스템을 제2 구성으로 재부팅하는 조치; 그리고 상기 부트 로더에 의해, 저장된 데이터에 기초하여 제2 부팅 이미지를 선택하는 조치를 포함한다. 제1 구성은 제1 세트의 모듈을 포함하고, 제2 구성은 제2 세트의 모듈을 포함하고, 그리고 상기 서브 시스템을 제2 구성으로 구성하는 조치가 특정 모듈을 로딩하는 조치를 포함한다.
일반적으로, 본 명세서에 기술된 발명의 한 가지 혁신적인 실시형태는, 시스템으로서, 복수의 서브시스템을 포함하고, 상기 복수의 서브시스템이, 제어 서브시스템, 제1 환자측 서브시스템, 그리고 제2 환자측 서브시스템을 포함하고, 제1 환자측 서브시스템은 제1 소프트웨어 구성과 관련되어 있고 제2 환자측 서브시스템은 제1 소프트웨어 구성과 다른 제2 소프트웨어 구성과 관련되어 있고, 상기 제어 서브시스템이 상기 시스템을 구성하고, 상기 시스템을 구성하는 것이 상기 제어 서브시스템과 제1 환자측 서브시스템의 제1 조합 또는 상기 제어 서브시스템과 제2 환자측 서브시스템의 제2 조합이 함께 통신가능하게 결합되어 있는지 여부를 결정하는 것, 그리고 상기 결정에 대응하여, 제1 조합 또는 제2 조합에 의해 사용될 특정 소프트웨어 구성을 선택하는 것과 상기 소프트웨어 구성의 유효성을 검증한 후에 상기 시스템을 초기화하는 것을 포함하는 시스템으로 구현될 수 있다.
상기의 실시례 및 다른 실시례는 각각 선택적으로 아래의 특징들의 하나 이상을, 단독으로 또는 결합하여 포함할 수 있다. 상기 시스템을 구성하는 것이 결정된 소프트웨어 구성을 상기 제어 서브시스템에 로딩하는 것을 포함하고 있다. 제1 환자측 서브시스템이 제1 하드웨어 구성을 가지고 있고, 상기 특정 소프트웨어 구성을 결정하기 전에 상기 제어 서브시스템이 상기 제어 서브시스템과 제1 환자측 서브시스템을 포함하는 시스템에 대해 제1 하드웨어 구성이 유효한 것을 결정한다. 제1 조합에서는 제1 환자측 서브시스템이 상기 제어 서브시스템에 통신가능하게 결합되어 있고, 상기 시스템을 구성하는 것이 상기 제어 서브시스템으로부터 제1 환자측 서브시스템으로 결정된 소프트웨어 구성을 로딩하라는 명령을 전송한다. 상기 제어 서브시스템이 수술 시스템의 외과의사 콘솔의 구성요소들을 포함하고, 상기 외과의사 콘솔이 상기 수술 시스템의 오퍼레이터에게 제어 기능을 제공하도록 구성되어 있다.
일반적으로, 본 명세서에 기술된 발명의 한 가지 혁신적인 실시형태는, 제어 서브시스템에 통신가능하게 결합할 제1 환자측 서브시스템을 선택하는 조치를 포함하고, 제1 환자측 서브시스템은 복수의 환자측 서브시스템으로부터 선택되고, 각각의 환자측 서브시스템은 별개의 디폴트 소프트웨어 구성을 가지고 있고; 상기 제어 서브시스템과 제1 환자측 서브시스템을 포함하는 수술 시스템을 구성하는 조치를 포함하고, 상기 수술 시스템을 구성하는 조치가, 상기 제어 서브시스템과 제1 환자측 서브시스템의 각각에 의해 사용될 특정 소프트웨어 구성을 결정하는 조치; 상기 특정 소프트웨어 구성이 제1 환자측 서브시스템에 현재 로딩된 제1 소프트웨어 구성과 상이하다고 결정하는 것에 대응하여, 제1 환자측 서브시스템에게 상기 특정 소프트웨어 버전을 사용하라고 명령하는 조치; 그리고 상기 특정 소프트웨어 구성이 상기 제어 서브시스템에 현재 로딩된 제2 소프트웨어 구성과 상이하다고 결정하는 것에 대응하여, 상기 특정 소프트웨어 구성을 상기 제어 서브시스템에 로딩하는 조치를 포함하고, 상기 수술 시스템을 상기 특정 소프트웨어 버전으로 초기화하는 조치를 포함하는 방법으로 구현될 수 있다.
이 실시형태의 다른 실시례는 상기 방법의 조치들을 수행하도록 각각 구성된 대응하는 컴퓨터 시스템, 장치, 그리고 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 작동 중에 상기 시스템으로 하여 상기 작업 또는 조치를 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 결합 형태를 상기 시스템에 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 상기 하나 이상의 컴퓨터 프로그램이 데이터 프로세싱 장치에 의해서 실행될 때, 상기 장치로 하여 상기 작업 또는 조치를 수행하게 하는 명령을 포함하는 것을 의미한다.
일반적으로, 본 명세서에 기술된 발명의 한 가지 혁신적인 실시형태는, 수술 시스템의 제1 환자측 서브시스템과 제1 제어 서브시스템으로 수술 기능을 제공하는 조치; 상기 수술 시스템이 수술 기능을 제공하는 동안 상기 수술 시스템에 대한 통신가능한 결합을 위해 제2 제어 서브시스템과 제2 환자측 서브시스템으로 이루어지는 그룹 중의 하나인 새로운 수술 서브시스템을 선택하는 조치; 그리고 상기 수술 시스템이 수술 기능을 제공하는 동안, 상기 수술 시스템에 의해 사용된 특정 소프트웨어 구성이 상기 새로운 수술 서브시스템에 로딩되어 있지 않다고 결정하는 조치; 및 제1 제어 서브시스템과 제1 환자측 서브시스템을 수술 기능을 유지하면서 상기 특정 소프트웨어 구성을 상기 새로운 수술 서브시스템에 로딩하는 것에 의해서 수술 기능을 중단하지 않고 상기 새로운 수술 서브시스템을 상기 수술 시스템에 추가하는 조치를 포함하는 방법으로 구현될 수 있다.
이 실시형태의 다른 실시례는 상기 방법의 조치들을 수행하도록 각각 구성된 대응하는 컴퓨터 시스템, 장치, 그리고 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함한다. 하나 이상의 컴퓨터의 시스템이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 작동 중에 상기 시스템으로 하여 상기 작업 또는 조치를 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 결합 형태를 상기 시스템에 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 작업 또는 조치를 수행하도록 구성되어 있다는 것은, 상기 하나 이상의 컴퓨터 프로그램이 데이터 프로세싱 장치에 의해서 실행될 때, 상기 장치로 하여 상기 작업 또는 조치를 수행하게 하는 명령을 포함하는 것을 의미한다.
상기의 실시례 및 다른 실시례는 각각 선택적으로 아래의 특징들의 하나 이상을, 단독으로 또는 결합하여 포함할 수 있다. 상기 특정 소프트웨어 구성을 상기 새로운 수술 서브시스템에 로딩하는 조치가, 복수의 부팅 이미지 중에서 상기 특정 소프트웨어 구성을 포함하는 특정 부팅 이미지를 선택하는 조치; 그리고 상기 새로운 수술 서브시스템을 현재의 부팅 이미지로부터부터 상기 특정 부팅 이미지로 재부팅하는 조치를 포함하고 있다. 상기 새로운 수술 서브시스템을 현재의 부팅 이미지로부터부터 상기 특정 부팅 이미지로 재부팅하는 조치가, 상기 특정 부팅 이미지에 대한 제1 헤더 블록을 입수하는 조치; 입수된 제1 헤더 블록을 상기 특정 부팅 이미지에 재기록하는 조치; 현재의 부팅 이미지에 대한 제2 헤더 블록의 복사본을 저장하는 조치; 그리고 재기록하는 조치와 저장하는 조치 후에, 현재의 부팅 이미지에 대한 제2 헤더 블록을 무효화하는 조치를 포함하고 있다. 상기 새로운 수술 서브시스템을 현재의 부팅 이미지로부터부터 상기 특정 부팅 이미지로 재부팅하는 조치가, 상기 특정 부팅 이미지를 식별하는 파라미터를 저장하는 조치; 부트 로더에 의해, 저장된 파라미터를 판독하는 조치; 그리고 상기 부트 로더에 의해, 저장된 파라미터에 기초하여 상기 특정 부팅 이미지를 선택하는 조치를 포함하고 있다. 상기 특정 소프트웨어 구성을 상기 새로운 수술 서브시스템에 로딩하는 조치가, 복수의 모듈 중에서 상기 특정 구성을 포함하는 하나 이상의 특정 모듈을 결정하는 조치; 그리고 상기 특정 모듈을 로딩하는 조치를 포함하고 있다. 상기 수술 시스템에 의해 사용된 특정 소프트웨어 구성이 상기 새로운 수술 서브시스템에 로딩되어 있지 않다고 결정하는 것이 제1 제어 서브시스템에 현재 로딩된 상기 특정 소프트웨어 구성을 기초로 한다. 상기 수술 시스템에 의해 사용된 특정 소프트웨어 구성이 상기 새로운 수술 서브시스템에 로딩되어 있지 않다고 결정하는 것이 제1 환자측 서브시스템에 현재 로딩된 상기 특정 소프트웨어 구성을 기초로 한다.
본 명세서에 기술된 발명의 특정 실시례는 아래의 장점들 중의 하나 이상을 실현하도록 실시될 수 있다. 복수의 서브시스템을 가지고 있는 수술 시스템은 공통 소프트웨어 버전을 사용하도록 세트업되고 구성될 수 있다. 따라서, 제공자가 복수의 완전한 별개의 수술 시스템을 입수할 필요가 없도록 상이한 하드웨어 구성과 소프트웨어 구성을 가지고 있는 서브시스템이 공통 시스템에 사용될 수 있다. 수술 시스템이 무효한(invalid) 구성으로 작동하는 것을 방지하기 위해서 하드웨어 구성과 소프트웨어 구성의 유효성이 검증된다.
상이한 하드웨어와 서브시스템과 소프트웨어 구성을 사용하는 능력은 제조업자에게 검사 장점(testing advantage)을 제공한다. 각각 복수의 소프트웨어 구성을 가진, 복수의 하드웨어 서브시스템이 현장에 있을 때, 제조업자의 검사 부담은 매우 클 수 있다. 종래의 시스템에서는, 고객이 하드웨어와 소프트웨어를 교체할 수 있게 사용하는 것을 가능하게 하기 위해서는, 제조업자가 모든 가능한 조합을 검사하여야 한다. 본 명세서에 기술된 것과 같이 복수의 서브시스템을 함께 결합한 후에 시스템을 재-프로그램 및/또는 재-구성하는 능력은 모든 가능한 조합을 검사할 필요없이 한 가지 특정 서브시스템을 상이한 시스템 구성으로 사용되게 할 수 있다. 서브시스템들의 각각의 유효한 조합은 그것과 관련된 특정 검사필 소프트웨어 버전(particular tested software version)을 가지고 있고, 서브시스템은 상기 소프트웨어 버전을 수시로 재구성한다.
본 명세서에 기술된 발명의 하나 이상의 실시례의 상세한 내용이 첨부된 도면과 아래의 설명에 개시되어 있다. 본 발명의 다른 특징, 실시형태 및 장점은 아래의 설명, 도면 및 청구항에 의해 명백하게 될 것이다.
도 1은 원격조종식 수술을 시행하는 하나의 예시적인 환경의 평면도를 나타내고 있다.
도 2는 상이한 수술 시스템들과 관련된 서브시스템들을 결합시키는 예시적인 시스템의 개략도이다.
도 3은 제어 콘솔과 다른 서브시스템을 하나의 수술 시스템에서 함께 사용되도록 구성하는 하나의 예시적인 프로세스의 흐름도이다.
도 4는 새로운 서브시스템을 미리 구성된 수술 시스템에 추가하는 하나의 예시적인 프로세스의 흐름도이다.
도 5는 소프트웨어 버전을 로딩하는 하나의 예시적인 프로세스의 흐름도이다.
도 6a 내지 도 6c는 서브시스템을 특정 소프트웨어 버전으로 재구성하는 하나의 예시적인 프로세스의 흐름도이다.
다양한 도면에 있어서 유사한 참고 번호와 표시는 유사한 요소를 나타낸다.
도 2는 상이한 수술 시스템들과 관련된 서브시스템들을 결합시키는 예시적인 시스템의 개략도이다.
도 3은 제어 콘솔과 다른 서브시스템을 하나의 수술 시스템에서 함께 사용되도록 구성하는 하나의 예시적인 프로세스의 흐름도이다.
도 4는 새로운 서브시스템을 미리 구성된 수술 시스템에 추가하는 하나의 예시적인 프로세스의 흐름도이다.
도 5는 소프트웨어 버전을 로딩하는 하나의 예시적인 프로세스의 흐름도이다.
도 6a 내지 도 6c는 서브시스템을 특정 소프트웨어 버전으로 재구성하는 하나의 예시적인 프로세스의 흐름도이다.
다양한 도면에 있어서 유사한 참고 번호와 표시는 유사한 요소를 나타낸다.
최소 침습 수술은 환자의 신체의 포트(port)를 통하여 수술 기기를 삽입함으로써 시행된다. 일부 실시형태에서는, 상기 수술 기기가 외과의사 콘솔을 이용하여 외과의사에 의해 적어도 부분적으로 원격조종된다. 원격조종식 수술 시스템에서는, 외과의사가, 예를 들면, 입체 영상을 이용하여 수술 부위의 영상을 제공받는다. 적절한 뷰어 또는 디스플레이로 수술 부위를 관찰하면서, 외과의사가 대응하는 원격조종식 수술 기기의 움직임을 제어하는 하나 이상의 제어 입력 장치를 이동시킴으로써 환자에 대해 수술을 시행한다.
원격조종식 수술 기기는, 예를 들면, 환자 내부의 수술 부위의 조직을 치료하기 위해 통상적으로 하나 이상의 포트를 통하여 삽입된다. 포트(port)는 수술 기기가 환자 신체로 들어가는 위치를 나타내는 일반적인 용어이다. 상기 포트는 인위적으로 만들어질 수 있거나 자연 개구(natural opening)일 수 있다. 예를 들면, 포트는 절개에 의해 만들어질 수 있거나 자연적인 신체 구멍, 예를 들면, 입에 해당할 수 있다.
수술 시스템은 통상적으로 두 개 이상의 서브시스템 구성요소를 포함하고 있다. 상기 서브시스템 구성요소는 수술 기기를 유지하고 위치시키는 하나 이상의 환자측 서브시스템, 환자측 서브시스템에 의해 유지된 수술 기기를 제어하기 위해 외과의사에 의해 사용되는 하나 이상의 제어 콘솔 서브시스템, 그리고 수술 시스템과 관련된 설비를 포함할 수 있는 하나 이상의 보조 설비 유닛, 예를 들면, 수술 현장 영상을 포착하는데 사용되는 하나 이상의 카메라용 카메라 제어 설비, 수술 현장 조명 설비, 전기 수술용 에너지 발생 설비, 수술 시스템용 중앙 데이터 처리 설비 또는 분산된 데이터 처리 설비 등을 포함할 수 있다. 일부 실시형태에서는, 수술 시스템의 세트업(setup)과 구성을 관리하기 위해 제어 콘솔이 사용되기도 한다. 하나의 예시적인 수술 시스템은 미국 캘리포니아 써니베일 소재의 인튜어티브 서지컬사(Intuitive Surgical, Inc.)에 의해 상용화된 다빈치 엑스아이(da Vinci® Xi™) 수술 시스템(모델 IS4000)이다.
도 1은 원격조종식 수술을 시행하는 하나의 예시적인 환경(100)의 평면도를 나타내고 있다. 상기 환경(100)은, 예를 들면, 수술실 환경일 수 있다. 상기 환경(100)은 수술대(102), 제1 제어 콘솔(104), 제1 환자측 서브시스템(106), 제2 환자측 서브시스템(108), 그리고 이 예에서는, 선택적인 제2 제어 콘솔(110)을 포함하고 있다.
제1 환자측 서브시스템(106)과 제2 환자측 서브시스템(108)은 각각 하나 이상의 수술 기기 또는 카메라를 지지하고 있다. 예를 들면, 제1 환자측 서브시스템(106)은 대응하는 수술 기기를 각각 유지하는 하나 이상의 머니퓰레이터를 포함하는 환자측 서브시스템이다. 각각의 수술 기기의 팁(tip)의 움직임은, 예를 들면, 하나 이상의 대응하는 컨트롤러에 대한 사용자 입력에 대응하여 제1 제어 콘솔(104)에 의해 제어된다. 상기 머니퓰레이터는 로봇식, 원격조종식, 또는 로봇식 및 원격조종식일 수 있다.
제2 환자측 서브시스템(108)은 제1 환자측 서브시스템(106)과 유사하게 될 수 있다. 예를 들면, 제2 환자측 서브시스템(108)은 환자 내부의 수술 현장을 눈에 보이게 하는 카메라를 포함할 수 있다. 제2 환자측 서브시스템(108)은 수술 현장을 눈에 보이게 하기 위해서 체강속으로 삽입될 수 있는 내시경을 포함할 수 있다. 수술 현장의 모습은 제어 콘솔(104)에 제공될 수 있다. 일부 실시형태에서는, 제2 환자측 서브시스템(108)이 카메라와 대응하는 수술 기기를 유지하고 위치시키는 하나 이상의 머니퓰레이터의 양자 모두를 포함할 수 있다.
제1 제어 콘솔(104)은 수술대(102)에 놓인 환자에 대해 시행되는 수술의 일부분으로서 하나 이상의 수술 장치를 제어하는데 사용되는 외과의사 콘솔이다. 제1 제어 콘솔(104)은 특정 수술을 시행하기 위해서 하나 이상의 수술 기기의 움직임을 제어하는데 사용된다. 제1 제어 콘솔(104)은 대응하는 수술 기기를 제어하기 위해서 외과의사에 의해서 사용되는 하나 이상의 컨트롤러를 포함할 수 있다. 예를 들면, 제1 제어 콘솔(104)은 대응하는 수술 기기를 조작하기 위해서 이동될 수 있는 수동 제어장치를 포함할 수 있다. 일부 실시형태에서는, 제1 제어 콘솔(104)이 하나 이상의 카메라에 의해서 제공된 수술 현장의 영상을 제공하는 뷰어도 포함하고 있다. 제2 제어 콘솔(110)은 통상적으로 제1 제어 콘솔(104)과 유사한 방식으로 구성되어 있으며, 그리고 제2 제어 콘솔(110)은 제2 오퍼레이터에 의한 환자측 서브시스템 머니퓰레이터의 제어를 제공하기 위해서, 예를 들면, 제1 제어 콘솔(104)에 있는 외과의사를 훈련시키기 위해서 또는 제1 제어 콘솔(104)로부터의 제어 입력에 추가하여 제어 입력을 제공함으로써 복잡한 수술을 시행하기 위해서 사용될 수 있다.
각각 독특한 하드웨어 구성 및 관련된 제어 요건을 가지고 있는 다양한 원격조종식 환자측 서브시스템이 존재한다. 예를 들면, 한 개의 원격조종식 환자측 수술 시스템은, 각각의 수술 기기가 독특한 대응하는 포트를 통하여 환자의 신체로 들어가는 다중-포트 수술 시스템일 수 있다. 예시적인 다중-포트 시스템이 미국 특허 출원 공보 제US 2013/032503 Al호(2013년 5월 31일자 출원)에 개시되어 있다. 제2 원격조종식 환자측 수술 시스템은, 모든 수술 기기가 단일 포트를 통하여 환자의 신체로 들어가는 단일-포트 수술 시스템일 수 있다. 예시적인 단일-포트 시스템이 미국 특허 출원 공보 제US 2011/0282356 Al호(2010년 8월 12일자 출원)에 개시되어 있다. 환자측 수술 시스템은, 미국 특허 출원 공보 제US 2004/0186345 Al호(2003년 12월 15일자 출원), 제US 2007/0013336 Al호(2005년 5월 19일자 출원), 제US 2007/0173975 Al호(2007년 1월 15일자 출원), 그리고 제US 2009/0163928 Al호(2007년 12월 21일자 출원)에 개시된 것과 같이, 단일-아암 시스템 또는 다양한 장소에 아암이 장착되어 있는 다중-아암 시스템을 포함할 수 있다.
마찬가지로, 각각 독특한 구성을 가지고 있으며, 각각 통상적으로 독특한 제어 서브시스템과 환자측 서브시스템 쌍(임의의 추가적인 보조 설비와 함께)이 단일의 원격조종식 수술 시스템을 형성하도록 단일의 환자측 서브시스템을 제어하도록 되어 있는 다양한 원격조종식 제어 서브시스템이 존재할 수 있다. 예를 들면, 미국 특허 제6,132,368호(1997년 11월 21일자 출원), 제6,246,200호(1999년 8월 3일자 출원), 제US 6,714,839 B2호(1999년 9월 17일자 출원), 제US 6,793,653 B2호(2001년 12월 8일자 출원), 그리고 제US 8,521,331 B2호(2009년 11월 13일자 출원)가 원격조종식 제어 서브시스템을 개시하고 있다.
단일의 원격조종식 수술 시스템이 한 개보다 많은 원격조종식 제어 서브시스템을 포함할 수 있다. 예를 들면, 미국 특허 제US 6,728,599 B2호(2001년 9월 7일자 출원)와, 제US 8,527,094 B2호(2005년 12월 27일자 출원)가 대응하는 외과의사에 의해 각각 따로따로 작동되며, 두 개의 제어 서브시스템이 함께 단일의 원격조종식 수술 시스템을 제어하는 것과 관련되어 있는 두 개 이상의 제어 서브시스템을 개시하고 있다. 두 개 이상의 제어 서브시스템을 사용하면 한 명의 외과의사가 다른 외과의사를 훈련시키는 것이 가능하거나, 환자측 서브시스템의 원격조종식 수술 장치의 갯수가 한 명의 외과의사가 혼자서 제어할 수 있는 갯수보다 많은 경우에 두 명의 외과의사가 함께 작업하는 것이 가능하다.
이와 같이, 알려진 수술 시스템에서는, (하나 이상의 별개의 구성요소를 포함할 수 있는)단일의 환자측 서브시스템이 단일의 환자측 서브시스템과 독특하게 관련되어 있는 하나 이상의 제어 서브시스템에 의해서 제어된다. 그러나, 의료 서비스 제공자가, 각각 독특한 하드웨어 아키텍쳐 및 관련된 제어 소프트웨어 구성을 가진, 두 개 이상의 환자측 서브시스템을 원하는 경우, 경제적인 이유와 같은 다양한 이유가 의료 서비스 제공자로 하여 두 개의 수술 시스템을 취득하지 못하게 할 수 있다.
따라서, 하나의 실시형태에서는, 두 개 이상의 독특하게 구성된 환자측 서브시스템과 함께 사용될 수 있는 단일의 제어 서브시스템 하드웨어 구성을 가지는 것이 바람직하다. 예를 들면, 단일의 제어 서브시스템과 제1 환자측 서브시스템이 함께 제1 원격조종식 수술 시스템을 형성하고, 단일의 제어 시스템과 제2 환자측 서브시스템이 함께 제2 원격조종식 수술 시스템을 형성한다.
마찬가지로, 다른 실시형태에서는, 두 개 이상의 독특하게 구성된 환자측 서브시스템과 함께 사용될 수 있는, 각각 유사하거나 동일한 하드웨어 구성을 가진 두 개 이상의 제어 서브시스템을 가지는 것이 바람직하다. 예를 들면, 두 개 이상의 제어 시스템과 제1 환자측 서브시스템이 함께 제1 원격조종식 수술 시스템을 형성하고, 두 개 이상의 제어 시스템과 제2 환자측 서브시스템이 함께 제2 원격조종식 수술 시스템을 형성한다.
또 다른 실시형태에서는, 수술 기기를 제어하는 환자측 서브시스템 외에 수술 시스템 서브시스템과 함께 사용될 수 있는 단일의 제어 서브시스템 하드웨어 구성, 또는 함께 작업하는 두 개 이상의 제어 시스템 하드웨어 구성을 가지는 것이 바람직하다. 예를 들면, 단일의 제어 서브시스템과 제1 보조 서브시스템이 함께 제1 원격조종식 수술 시스템을 형성하고, 단일의 제어 시스템과 제2 보조 서브시스템이 함께 제2 원격조종식 수술 시스템을 형성한다. 마찬가지로, 두 개 이상의 제어 서브시스템과 제1 보조 서브시스템이 함께 제1 원격조종식 수술 시스템을 형성하고, 두 개 이상의 제어 서브시스템과 제2 보조 서브시스템이 함께 제2 원격조종식 수술 시스템을 형성한다.
그리고 또 다른 실시형태에서는, 시스템 또는 서브시스템의 현재의 소프트웨어 및/또는 하드웨어 구성과 관계없이, 두 개 이상의 독특한 수술 시스템을 형성하는 수술 시스템 서브시스템들 사이의 일정한 소프트웨어 구성을 결정하고 실행하는 기술을 가지는 것이 바람직하다.
도 2는 상이한 수술 시스템들과 관련된 서브시스템들을 결합시키는 예시적인 시스템의 개략도(200)이다. 특히, 도 2는 제어 콘솔(202), 제1 환자측 서브시스템(204), 그리고 제2 환자측 서브시스템(206)을 나타내고 있다. 예시의 목적으로, 제1 환자측 서브시스템(204)과 제2 환자측 서브시스템(208)은 상이한 하드웨어 및 소프트웨어 구성, 예를 들면, 상이한 수술 시스템 모델과 관련된 특정 소프트웨어 버전과 각각 관련되어 있다. 도 3 내지 도 6과 관련하여 아래에 상세하게 기술되어 있는 것과 같이 수시로(on the fly) 재프로그래밍하는 기술을 이용하면, 복수의 시스템이 외과의사 제어 콘솔(202)과 제1 환자측 서브시스템(204) 또는 제2 환자측 서브시스템(206)을 이용하여 구성되고 작동될 수 있다.
예를 들면, 제1 수술 시스템(208)은 외과의사 제어 콘솔(202)과 제1 환자측 서브시스템(204)을 결합시키고 특정 소프트웨어 구성에 따라 상기 시스템을 작동하도록 구성함으로써 형성될 수 있다. 제2 수술 시스템(210)은 외과의사 제어 콘솔(202)과 제2 환자측 서브시스템(206)을 결합시키고 특정 소프트웨어 구성에 따라 상기 시스템을 작동하도록 구성함으로써 형성될 수 있다. 제2 수술 시스템(210)의 특정 소프트웨어 구성은 제1 수술 시스템(208)의 특정 소프트웨어 구성과 다를 수 있다. 예를 들면, 제1 수술 시스템(208)의 특정 소프트웨어 구성은 제1 환자측 서브시스템(204)의 특정 하드웨어와 관련된 제1 소프트웨어 버전일 수 있는 반면에, 제2 수술 시스템(210)의 특정 소프트웨어 구성은 외과의사 제어 콘솔(202)과 관련되고 제2 환자측 서브시스템(206)에 로딩된 제2 소프트웨어 버전일 수 있다.
유선 또는 무선으로 될 수 있는 하나 이상의 데이터 링크를 이용하여 특정 수술 시스템을 형성하기 위해 각각의 환자측 서브시스템이 외과의사 제어 콘솔에 결합될 수 있다. 이들 수술 시스템의 각각에 대해 각각의 환자측 서브시스템에 대해 유효한 하드웨어 구성(valid hardware configuration)이 주어지고 아래에 기술되어 있는 것과 같이 상기 시스템의 모든 서브시스템에 대해 사용하는 공통 소프트웨어 버전의 결정이 이루어진다. 일부 실시형태에서는, 제1 환자측 서브시스템(204)과 제2 환자측 서브시스템(206)이 동일한 하드웨어 구성이지만 상이한 소프트웨어 버전을 가진다. 몇몇 다른 실시형태에서는, 제1 환자측 서브시스템(204)과 제2 환자측 서브시스템(206)이 상이한 하드웨어 구성과 상이한 소프트웨어 버전을 가지고 있다. 추가적으로, 유효한 구성을 결정함으로써 각각의 시스템이 형성되기 때문에, 모든 가능한 소프트웨어 구성을 테스트할 필요가 없다. 비록 도 2에 도시되어 있지는 않지만, 추가적인 환자측 서브시스템 또는 추가적인 외과의사 제어 콘솔 또는 추가적인 보조 설비 유닛에 기초하여 다른 시스템이 형성될 수 있다.
몇몇 경우에 있어서, 외과의사 제어 콘솔(202) 및/또는 환자측 서브시스템(204)의 세트업 후에 다른 외과의사 제어 콘솔 또는 다른 환자측 서브-시스템이 연결될 수 있다. 예를 들어, 다른 외과의사 제어 콘솔 또는 다른 환자측 서브-시스템이 필요한 것으로 밝혀지면, 외과의사 제어 콘솔(202) 및/또는 환자측 서브시스템(204)이 하나의 수술에 사용될 수 있다. 예를 들면, 제2 외과의사가 수술 작업을 관찰하거나 보조하는 것을 가능하게 하기 위해서 다른 외과의사 제어 콘솔이 필요할 수 있다. 다른 예에서는, 기존의 제1 환자측 서브시스템(204) 또는 제2 환자측 서브시스템(206) 중의 어느 하나에 의해 제공되지 않은 수술 공구를 제공하기 위해서 다른 환자측 서브시스템이 필요할 수 있다.
이러한 상황에서는, 새로 추가된 시스템의 소프트웨어를 업데이트할 필요가 있다. 아래에서 보다 상세하게 설명하겠지만, 새로 추가된 시스템이 업데이트되는 동안 상기 시스템의 나머지는 여전히 사용가능한 상태로 있을 수 있다.
도 3은 제어 콘솔과 다른 서브시스템이 하나의 수술 시스템에서 함께 사용되도록 구성하는 하나의 예시적인 프로세스 300의 흐름도이다. 상기 프로세스 300은, 이 예에서는, 도 1의 제1 제어 콘솔(104)과 같은 제어 콘솔에 의해 실행될 수 있다. 그러나, 유사한 프로세스가 수술 시스템의 세트업 및 구성을 제어하는 것으로 지정되어 있는 특정 서브시스템에 의해 사용될 수 있다.
하드웨어 구성 정보가 하나 이상의 서브시스템의 각각으로부터 얻어진다(단계 302). 예를 들면, 제어 콘솔이 제1 수술 시스템 모델과 관련된 하드웨어 구성을 가질 수 있다. 제2 상이한 서브시스템, 예를 들면, 환자측 서브시스템이 제2 수술 시스템 모델과 관련된 하드웨어 구성을 가질 수 있다. 대체 실시형태로서, 서브시스템들이 동일한 하드웨어 구성이지만 상이한 소프트웨어 구성을 가질 수 있다.
일부 실시형태에서는, 서브시스템들이 제어 콘솔에 결합되고 제어 콘솔이 작동되면, 제어 콘솔이 각각의 서브시스템으로 서브시스템의 하드웨어 구성을 위한 요구를 보낸다. 몇몇 다른 실시형태에서는, 서브시스템들이 제어 콘솔에 결합되면, 각각의 서브시스템이 그 서브시스템에 대한 하드웨어 구성을 대응하는 제어 콘솔로 보낸다.
하나 이상의 서브시스템의 각각의 하드웨어 구성이 유효하다는 결정이 내려진다(단계 304). 일부 실시형태에서는, 상기 결정이 각각의 서브시스템으로부터 수신된 하드웨어의 식별자(identifier)를 제어 콘솔과 양립가능한 하드웨어 구성의 순람표(lookup table)와 비교하는 조치를 포함한다. 예를 들면, 특정 하드웨어 설계형태는 제어 콘솔의 특정 제어 하드웨어와 양립가능하지 않을 수 있다. 다른 예에서는, 다른 제조업체의 하드웨어가 제어 콘솔과 짝을 이루는 것이 인정되지 않을 수 있다.
특정 서브시스템의 하드웨어 구성이 유효하지 않다는 결정이 내려지면, 오류가 발생된다. 이 오류는 서브시스템이 제어 콘솔에 의해 제어되는 것을 방지할 수 있다. 오류는 제어 콘솔에 보고될 수 있다. 오류는 개개의 서브시스템에 보고될 수도 있다.
각각의 서브시스템에 대한 하드웨어 구성이 유효하다고 결정하는 것에 대응하여, 제어 콘솔을 포함하는 모든 서브시스템에서 실행되는 소프트웨어 버전이 결정된다(단계 306). 서브시스템에 의해 실행될 공통 소프트웨어 버전이 다양한 방식으로 결정될 수 있다. 일부 실시형태에서는, 각각의 하드웨어 구성이 디폴트 소프트웨어 구성(default software configuration)과 관련되어 있다. 모든 서브시스템이 동일한 디폴트 소프트웨어 구성과 관련되어 있으면, 그 소프트웨어 구성이 유지될 수 있다. 소프트웨어 버전을 결정하는 것은 복수의 소프트웨어 버전 중에서 소프트웨어 버전을 선택하는 조치를 포함할 수 있고, 각각의 소프트웨어 버전은 특정 서브시스템과 관련되어 있다.
일부 실시형태에서는, 특정 서브시스템의 디폴트 소프트웨어 구성이 전체 수술 시스템에 대해서 사용될 소프트웨어 구성을 결정한다. 예를 들면, 환자 카트로서 작용하고 각각의 수술 기기을 유지하는 하나 이상의 머니퓰레이터을 포함하는 서브시스템의 디폴트 소프트웨어 구성이 제어 콘솔 뿐만 아니라 다른 서브시스템, 예를 들면, 비전 카트(vision cart)에 의해 사용될 소프트웨어 구성을 결정할 수 있다. 일부 실시형태에서는, 제어 콘솔의 소프트웨어 구성이 모든 서브시스템에 의해서 사용될 소프트웨어 구성을 제어할 수 있다. 마지막으로, 복수의 서브시스템이 상기 시스템에 포함되어 있으면, 가장 많은 수의 개개의 서브시스템과 관련된 소프트웨어 구성이 모든 서브시스템에 의해 사용될 소프트웨어 구성으로 지정될 수 있다.
일부 실시형태에서는, 각각의 서브시스템이, 예를 들면, 대응하는 하드웨어 구성에 의해서 지원된 소프트웨어 버전을 나타내는 제어 콘솔에 추가적인 정보를 제공한다. 상기 제어 콘솔은 어떤 소프트웨어 버전을 시스템에 사용할 것인지를 결정하는데 이 추가적인 정보를 사용할 수 있다.
몇몇 대체 실시형태에서는, 어떠한 특정 서브시스템도 리더(leader)로 지정되지 않지만, 서브시스템들 사이의 하드웨어와 소프트웨어의 특정 조합이 유효하고 테스트된 구성으로 지정되는지를 알아보기 위해 서로 협상하는 협력 기술(cooperative technique)이 사용된다.
일단 소프트웨어 버전이 결정되면, 제어 콘솔에 의해 각각의 서브시스템으로 실행할 소프트웨어 버전을 식별하라는 명령이 전송된다(단계 308). 일부 실시형태에서는, 명령을 수신하는 각각의 서브시스템이 소프트웨어 버전이 현재의 소프트웨어 버전인지 여부를 결정한다. 현재의 소프트웨어 버전이 결정된 소프트웨어 버전이 아니면, 서브시스템이 결정된 소프트웨어 버전을 로딩한다. 소프트웨어 버전은 별개의 디스크 이미지에 저장될 수 있다.
결정된 소프트웨어 버전이 제어 콘솔에 현재 로딩되지 않으면, 제어 콘솔이 결정된 소프트웨어 버전을 로딩하기 위해 재부팅하도록 구성될 수 있다(단계 310). 일부 실시형태에서는, 제어 콘솔이 복수의 디스크 이미지를 포함하고 있다. 각각의 디스크 이미지는 특정 소프트웨어 버전을 포함하고 있다. 특정 소프트웨어 버전을 로딩하는 것이 도 5 내지 도 6과 관련하여 아래에 기술되어 있다.
각각의 서브시스템에 로딩된 소프트웨어 버전은 유효성이 검증된다(단계 312). 특히, 유효성 검증은 올바른 소프트웨어 버전이 각각의 서브시스템에 로딩되었다는 것을 결정한다. 올바른 소프트웨어 버전이 로딩되지 않았으면, 문제가 해결될 때까지 수술 시스템의 작동을 막도록 에러가 발생될 수 있다. 일부 실시형태에서는, 제어 콘솔이 각각의 서브시스템에 대해 유효성을 검사한다. 일부 실시형태에서는, 각각의 서브시스템이 자체 유효성 검증을 실행하고 결과를 제어 콘솔에 보고한다. 유효성 검증 후에, 수술 시스템은 로딩된 소프트웨어 버전으로 초기화될 수 있다. 초기화된 수술 시스템은, 예를 들면, 하나 이상의 수술을 시행하기 위해 사용될 수 있다.
도 4는 구성된 수술 시스템에 새로운 서브시스템을 추가하는 하나의 예시적인 프로세스 400의 흐름도이다. 프로세스 400은, 이 예에서는, 도 1의 제1 제어 콘솔(104)과 같은 제어 콘솔에 의해 실행될 수 있다. 그러나, 유사한 프로세스가 임의의 적절한 서브시스템에 의해 사용될 수 있다.
새로운 서브시스템이 수술 시스템에 통신가능하게 결합된다(예를 들면, 수술 시스템에 제어 콘솔에 통신가능하게 결합된다)(단계 402). 예를 들면, 수술 시스템은 초기에는 하나의 환경, 예를 들면, 하나 이상의 수술 기기를 유지하고 위치시키는 하나 이상의 머니퓰레이터를 포함하는 제1 서브시스템과 제어 콘솔을 포함하는, 환경 100으로 세트업될 수 있다. 수술 시스템은 도 3에 대해서 상기한 바와 같이 특정 소프트웨어 버전에 대해서 세트업될 수 있다. 나중에 추가적인 서브시스템이 추가될 수 있다. 예를 들면, 대응하는 머니퓰레이터를 가지고 있는 추가적인 서브시스템이 수술의 일부분에 필요할 수 있다.
새로운 서브시스템에 대한 하드웨어 구성이 얻어진다(404). 일부 실시형태에서는, 새로운 서브시스템이 제어 콘솔에 결합되면, 제어 콘솔이 서브시스템으로 서브시스템의 하드웨어 구성을 위한 요구를 보낸다. 일부 실시형태에서는, 새로운 서브시스템이 제어 콘솔에 결합되면, 서브시스템이 자동적으로 서브시스템에 대한 하드웨어 구성을 제어 콘솔로 보고한다.
새로운 서브시스템의 하드웨어 구성이 유효하다는 결정이 내려진다(단계 406). 도 3에 대해서 상기한 바와 같이, 일부 실시형태에서는, 상기 결정이 새로운 서브시스템의 하드웨어와 관련된 식별자를 제어 콘솔과 양립가능한 하드웨어 구성의 순람표와 비교하는 조치를 포함한다.
새로운 서브시스템에 대해 유효한 하드웨어 구성을 결정하는 것에 대응하여, 수술 시스템의 소프트웨어 버전과 어울리는 새로운 서브시스템에 로딩할 소프트웨어 버전이 결정된다(단계 408). 수술 시스템이 미리 구성되었기 때문에, 상기 결정은 제어 콘솔의 현재의 소프트웨어 버전 및/또는 현재 구성되어 있으며 제어 콘솔에 결합된 하나 이상의 서브시스템을 결정하는 조치를 포함할 수 있다.
일단 소프트웨어 버전이 결정되면, 제어 콘솔에 의해 새로운 서브시스템으로 실행할 소프트웨어 버전을 식별하라는 명령이 전송된다(단계 410). 일부 실시형태에서는, 새로운 서브시스템이 소프트웨어 버전이 새로운 서브시스템의 현재의 소프트웨어 버전인지 여부를 결정한다. 현재의 소프트웨어 버전이 결정된 소프트웨어 버전이 아니면, 새로운 서브시스템이 결정된 소프트웨어 버전을 로딩한다.
제어 콘솔은 새로운 서브시스템에 대한 소프트웨어 구성에 대해 유효성을 검증한다(단계 412). 특히, 유효성 검증은 올바른 소프트웨어 버전이 새로운 서브시스템에 로딩되었다는 것을 결정한다. 일부 실시형태에서는, 유효성 검증이 수술 시스템을 사용하기 전에 모든 서브시스템에 대해서 실행된다.
새로운 서브시스템이 구성되는 동안, 새로운 서브시스템은 제어 콘솔이 서브시스템과 통신할 수 없거나 서브시스템을 제어할 수 없는 에러 상태로 들어갈 수 있다. 그러나, 새로운 서브시스템이 에러 상태에 있는 동안 제어 콘솔과 이전 서브시스템이 작동될 수 있고 수술 기능을 계속하여 제공할 수 있다. 다시 말해서, 새로운 서브시스템이 자신의 구성 처리를 완료하기를 기다는 동안 제어 콘솔과 제1 서브시스템이 외과의사에 의해 사용될 수 있다.
이러한 업데이팅은 수술 세트업 전에 이루어질 수 있지만, 이러한 기능은 수술 도중에 새로운 서브시스템이 추가되어야 하는 경우 특히 중요할 수 있다. 예를 들면, 수술 도중에 새로운 서브시스템이 필요하다는 결정을 초래하는 복잡한 문제가 발생할 수 있다. 제2 화각(view angle)이 필요할 수 있고, 그 결과 제2 뷰 카트(view cart)가 필요할 수 있다. 다른 예에서는, 예상치 못한 수술을 시행하기 위해 추가적인 수술 도구가 필요할 수 있고, 필요한 도구를 가진 환자측 카트가 추가될 수 있다. 이러한 경우에, 이러한 기술을 사용하면 기존의 제어 콘솔과 기존의 서브시스템의 수술 기능을 중단하지 않고 새로운 카트를 추가할 수 있다.
일부 실시형태에서는, 제어 콘솔이 단계 408에서 새로운 서브시스템에 대해 특정 소프트웨어 버전을 로딩하라는 명령을 내리기보다는, 예를 들면, 새로운 서브시스템의 소프트웨어 버전과 조화되는 결정된 소프트웨어 버전을 로딩한다. 결정된 소프트웨어 버전을 제어 콘솔에 로딩한 후에, 제어 콘솔은 사용하기 위해서, 예를 들면, 하나 이상의 수술을 시행하기 위해서 수술 시스템을 초기화하기 전에 시스템에 대한 소프트웨어 구성에 대해 유효성을 검증할 수 있다.
제2 제어 콘솔이 사용가능하고 새로운 서브시스템에 대응하여 새로운 소프트웨어를 로딩할 필요가 없으면, 다른 제어 콘솔이 구성되는 동안 제2 제어 콘솔이 기존의 서브시스템의 제어를 유지할 수 있고 새로운 서브시스템을 제어할 수 있다.
예를 들면, 하나의 외과 수술에 두 명의 외과의사, 즉, 제1 외과의사와 제2 외과의사가 필요할 수 있다. 제1 외과의사는 제1 환자측 카트를 제어하기 위해 제1 제어 콘솔을 이용할 수 있고 제2 외과의사는 제2 환자측 카트를 제어하기 위해 제2 제어 콘솔을 이용할 수 있다. 수술 도중에, 제3 서브시스템을 추가할 필요가 있다는 결정이 내려질 수 있다. 제3 서브시스템이 추가되면, 제1 제어 콘솔은 제1 제어 콘솔이 구성된 그대로 사용할 수 있지만, 제2 제어 콘솔은 업그레이드될 것을 요한다.
이 경우에, 제2 제어 콘솔은 제3 서브시스템을 제어하기 위해서 새로운 소프트웨어 버전을 로딩할 수 있다. 이 업데이트를 위해서 제2 제어 콘솔이 에러 모드에 있는 동안, 제1 제어 콘솔은 제1 서브시스템의 제어상태를 유지할 수 있고 제3 서브시스템, 그리고 선택적으로 제2 서브시스템을 제어할 수 있다.
도 5는 소프트웨어 버전을 로딩하는 하나의 예시적인 프로세스 500의 흐름도이다. 상기 프로세스는, 예를 들면, 수술 시스템에 대해 실행할 소프트웨어 버전에 대하여 결정이 내려진 후 제어 콘솔에 의해 실행될 수 있다. 상기 프로세스는 또한 수술 시스템에 대해 실행할 특정 소프트웨어 버전을 식별하는 제어 콘솔로부터 수신된 명령에 대응하여 서브시스템에 의해서도 실행될 수 있다.
현재의 소프트웨어 버전이 아닌, 서브시스템에 의해 사용될 특정 소프트웨어 버전이 식별된다(단계 502). 일단 특정 소프트웨어 버전이 식별되면, 그 소프트웨어 버전을 실행하기 위해 재부팅이 개시된다(단계 504). 재부팅을 개시하는 것에 대응하여, 복수의 부팅 이미지(boot image) 또는 부팅 루틴(boot routine) 중에서 상기 소프트웨어 버전을 포함하는 특정 부팅 이미지 또는 부팅 루틴에 관하여 결정이 내려진다(단계 506). 예를 들면, 서브시스템이 부팅 이미지에 로딩된 특정 소프트웨어 버전을 각각 가지고 있는 복수의 부팅 이미지를 포함할 수 있다. 상기 서브시스템은 또한 데이터, 예를 들면, 특정 부팅 이미지를 로딩된 소프트웨어 버전과 매핑시키는 파일을 포함할 수도 있다. 상기 서브시스템은 로딩할 복수의 부팅 이미지로부터 어떤 부팅 이미지를 결정하기 위해서 매핑 데이터(mapping data)를 사용할 수 있다. 다른 예에서는, 모든 버전에 공통인 부팅 루틴이 버전-특정 모듈(version-specific module)을 로딩할 수 있다. 결정된 소프트웨어 버전이 서브시스템에 의해서 로딩된다(단계 508). 이미지를 로딩하는 것이 도 6과 관련하여 보다 상세하게 기술되어 있다.
재부팅 후에, 서브시스템은 서브시스템의 기능을 수행하기 위해 부팅 이미지로부터 로딩된 소프트웨어 버전을 사용한다(단계 510). 예를 들어, 서브시스템이 하나 이상의 머니퓰레이터를 가진 환자 카트이면, 제어 콘솔로부터의 제어 입력에 대응하여 상기 머니퓰레이터의 움직임을 제어하기 위해 소프트웨어가 사용된다.
도 6a 내지 도 6c는 서브시스템을 특정 소프트웨어 버전으로 재구성하는 예시적인 프로세스 600, 프로세스 625 및 프로세스 650의 흐름도이다. 이들 프로세스 600, 프로세스 625 및 프로세스 650은, 예를 들면, 제어 콘솔에 의해 또는 상기 제어 콘솔로부터 수신된 명령에 대응하여 서브시스템에 의해 실행될 수 있다. 대체로 상기 프로세스 600, 프로세스 625 및 프로세스 650은 모두 서브시스템의 작동에 필요한 특정 소프트웨어 버전을 로딩하기 위해서 재부팅한 후 제어 콘솔 또는 서브시스템에 의해서 사용될 수 있다. 두 개의 상이한 유형의 구성이 기술되어 있다. 프로세스 600과 프로세스 625에 의해 사용된 제1 유형의 구성은 상이한 버전의 소프트웨어에 액세스하기 위해 상이한 부팅 이미지를 제공한다. 프로세스 650에 의해 사용된 제2 유형의 구성은 상이한 버전의 소프트웨어에 액세스하기 위해 상이한 모듈을 제공한다.
프로세스 600에서는, 특정 소프트웨어 버전을 사용하기로 결정이 내려진다(단계 602). 예를 들면, 상기 결정은 수술 시스템에 사용될 특정 소프트웨어 버전을 결정하는 제어 콘솔에 의해서, 또는 서브시스템에 수신된 명령에 대응하여, 예를 들면, 특정 소프트웨어 버전을 사용하기 위해 제어 콘솔에 의해서 내려질 수 있다. 예를 들면, 서브시스템은 부팅 이미지 A에서 얻은 소프트웨어 버전 A를 현재 실행하는 것이 될 수 있다. 상기 결정은 부팅 이미지 B에서 얻어지는 소프트웨어 버전 B를 사용하는 것이 될 수 있다.
프로세스 600에서는, 특정 소프트웨어 버전의 로케이션(location)에 대해서 결정이 내려진다. 특히, 소프트웨어 버전이 현재 사용되고 있는 것이 아니면, 소프트웨어 버전이 현재의 부팅 이미지와 다른 부팅 이미지에 배치되어 있다는 결정이 내려진다(단계 604). 제어 콘솔 또는 다른 서브시스템은 복수의 부팅 이미지를 포함할 수 있다. 각각의 부팅 이미지는 그 부팅 이미지에 로딩되는 특정 소프트웨어 버전과 관련될 수 있다.
특정 소프트웨어 버전을 포함하는 상이한 부팅 이미지를 결정하는 것에 대응하여, 부팅 이미지의 헤더 블록이 재기록된다(단계 606). 특히, 각각의 다른 비사용 부팅 이미지는 서브시스템의 저장 장소에 저장된 헤더 블록의 복사본을 가질 수 있다. 각각의 헤더 블록은 필요에 따라 검색될 수 있다. 따라서, 상기 예로 돌아가면, 부팅 이미지 B의 헤더 블록은 별개의 저장 장소로부터 검색된 부팅 이미지 B로부터의 헤더 블록의 복사본으로부터 재기록된다. 헤더 블록을 재기록함으로써, 부팅 이미지가, 예를 들면, 서브시스템의 부트 로더 프로그램(boot loader program)에 의해 부팅가능하게 된다.
현재의 부팅 이미지의 헤더 블록의 복사본이 저장된다(단계 608). 예를 들면, 상기 헤더 블록의 복사본이 다른 비사용 부팅 이미지의 복사된 헤더 블록과 함께 저장될 수 있다. 특히, 다음 예에서는, 부팅 이미지 A의 헤더 블록이 저장 장소에 복사된다.
현재의 부팅 이미지의 헤더 블록이, 예를 들면, 그 헤더 블록을 제로(zero)로 만듦으로써 무효화된다(단계 610). 부팅 이미지 A의 헤더 블록이 무효화된 후, 부팅 이미지 A는 리스타트(restart)에 대응하여 더 이상 부팅될 수 없다. 그러나, 상기 헤더 블록이 부팅 이미지 B에 재기록되어 있기 때문에, 소프트웨어 버전 B를 로딩할 부팅 이미지 B로 리스타트가 될 것이다. 서브시스템은 상이한 부팅 이미지로 재부팅된다(단계 612).
몇몇 시나리오에서는, 프로세스 600과 관련하여 기술한 재구성 프로세스 동안 인터럽트가 발생한다. 이러한 시나리오에서는, 시스템이 프로세스의 상태에 따라 어떤 부팅 이미지를 로딩할지를 결정한다. 현재의 부팅 이미지를 제로 클리어(zero out)하기 전에 헤더 블록을 상이한 부팅 이미지에 재기록하는 순서 때문에, 인터럽트가 발생할 시에 리스타트할 때에 항상 로딩가능한 적어도 하나의 유효한 부팅 이미지가 있을 것이다.
예를 들어, 헤더(header)가 부팅 이미지 B에 재기록(restore)되기 전에 인터럽트가 발생하면, 부팅 이미지 A에 대한 헤더가 여전히 유효한 반면에 부팅 이미지 B는 유효하지 않다. 인터럽트 발생후 리스타트하자마자, 서브시스템이 부팅 이미지 A로 부팅하기로 결정하고 부팅 이미지 B로의 전환이 재시도될 수 있다, 예를 들면, 부팅 이미지 B에 대한 헤더가 재기록될 수 있고 부팅 이미지 A에 대한 헤더는 상기한 것과 같이 무효화될 수 있다.
다른 예에서는, 헤더가 부팅 이미지 B에 재기록된 후이고 부팅 이미지 A의 헤더 블록이 제로로 된 후에 인터럽트가 발생하면, 부팅 이미지 B만이 유효하다. 리스타트하자마자, 서브시스템이 부팅 이미지 B로 부팅하고 대응하는 소프트웨어 버전을 로딩하기로 결정한다.
다른 예에서는, 헤더가 부팅 이미지 B에 재기록된 후이고 부팅 이미지 A의 헤더 블록이 제로로 되기 전에 인터럽트가 발생하면, 부팅 이미지 A와 부팅 이미지 B 양자 모두가 유효하다. 서브시스템은 하나 이상의 기준에 따라 두 개의 유효한 부팅 이미지로부터 어떤 부팅 이미지를 로딩할지를 결정한다. 예를 들면, 서브시스템은 마지막에 로딩된 부팅 이미지, 이 예에서는 부팅 이미지 A로 디폴트할 수 있다. 부팅 이미지 A를 로딩한 후, 서브시스템은 부팅 이미지 B로의 변경이 여전히 필요하다는 것을 결정할 수 있고 유효한 부팅 이미지를 부팅 이미지 B로 변경하는 프로세스를 진행시킬 수 있다. 어떤 부팅 이미지를 로딩할 지를 결정하는 다른 기준이 사용될 수 있다. 예를 들면, 서브시스템이 가장 낮은 숫자의(lowest-numbered) 유효한 부팅 이미지를 사용할 수 있거나 유효한 부팅 이미지들 중에서 무작위로 선택할 수 있다.
프로세스 625에서는, 특정 소프트웨어 버전을 사용하기로 결정이 내려진 후(단계 602), 소프트웨어 버전이 현재의 부팅 이미지와 다른 부팅 이미지에 배치되어 있다는 결정이 내려진다(단계 604). 부팅 이미지 헤더가 재부팅 후에 사용된 부팅 이미지를 제어하기 위해서 사용되는 프로세스 600과는 다르게, 프로세스 625는 소프트웨어 버전을 로딩하기 위해서 복수의 사용가능한 부팅 이미지로부터 선택할 수 있는 부트 로더를 사용한다.
부트 로더는 필요한 특정 소프트웨어 버전에 대응하는 부팅 이미지를 식별하는 주어진 파라미터이다(단계 627). 예를 들면, 제어 콘솔이 이러한 파라미터를 부트 로더에 의해 액세스가능한 비휘발성 컴퓨터 메모리에 저장할 수 있거나, 상기와 같은 메모리에 저장하기 위해서 상기 파라미터를 서브시스템으로 보낼 수 있다.
선택된 부팅 이미지를 식별하는 파라미터가 저장된 상태에서는, 리스타트가 부트 로더로 부팅될 것이다(단계 629). 부트 로더는 선택된 부팅 이미지를 로딩하는 조치를 포함하여, 부팅하는 명령을 실행하도록 진행될 수 있다(단계 631). 예를 들면, 부트 로더는 부팅할 부팅 이미지를 식별하는 파라미터를 검색한 다음, 그 부팅 이미지로 부팅하기 위해서 컴퓨터 메모리의 내용을 판독할 수 있다.
프로세스 650에서는, 특정 소프트웨어 버전을 사용하기로 결정이 내려진 후(단계 602), 상이한 버전-특정 모듈이 필요하다는 결정이 내려진다. 상이한 소프트웨어에 대한 액세스하기 위해서 상이한 부팅 이미지가 사용되는 프로세스 600 및 프로세스 625와는 다르게, 프로세스 650은 필요한 소프트웨어 버전과 관계없이 동일한 오퍼레이팅 시스템으로 부팅한다. 그리고 나서, 버전-특정 모듈이 로딩된다.
버전 식별자가 저장된다(단계 652). 예를 들면, 제어 콘솔이 원하는 버전을 재부팅 후에 오퍼레이팅 시스템에 의해서 액세스할 수 있게 될 컴퓨터 메모리에 저장할 수 있거나, 상기와 같은 메모리에 저장하기 위해서 상기 버전을 서브시스템으로 보낼 수 있다.
버전 인티케이터(version indicator)가 저장된 상태에서는, 리스타트가 오퍼레이팅 시스템으로 부팅될 것이다(단계 654). 이러한 재부팅은 어떠한 버전-특정 모듈도 로딩되지 않은 상태에서 오퍼레이팅 시스템을 로딩하는 효과를 가진다. 오퍼레이팅 시스템은 메모리로부터 데이터의 검색, 네트워크 통신, 또는 진단 기능과 같은 일부 기능을 제공할 수 있다. 그러나, 어떠한 버전-특정 모듈도 로딩되지 않은 상태에서는, 대응하는 서브시스템의 제어가 제한되거나 제어할 수 없다. 몇몇 경우에는, 오퍼레이팅 시스템을 재구성하는 다른 방법이 사용될 수 있다. 예를 들면, 재부팅하는 대신, 소프트웨어 모듈의 일부 또는 전부가 언로드(unload)될 수 있다. 이것은, 예를 들면, 오퍼레이팅 시스템 또는 오퍼레이팅 시스템에서 관련없는 애플리케이션의 연속적인 작동을 가능하게 할 수 있고, 이것은 재부팅에 의해서 인터럽트될 수 있다.
오퍼레이팅 시스템은 모듈-로딩 스크립트(module-loading script)를 실행시킬 수 있다(단계 656). 예를 들면, 오퍼레이팅 시스템은 시동(starting up)의 일부로서, 또는 시작 프로세스(startup process)를 완료하는 것에 대응하여 특정 디렉토리에 저장된 하나 이상의 스크립트를 실행시키도록 구성될 수 있다. 이러한 스크립트는 컴퓨터 메모리로부터 버전 인티케이터를 판독하고 버전-특정 모듈을 로딩하는 명령을 포함할 수 있다(단계 658). 상기 버전-특정 모듈은 프로세스 600과 프로세스 625에서의 부팅 이미지와 동일하거나 유사한 기능을 제어 콘솔과 서브시스템에 제공한다. 버전-특정 모듈은 오퍼레이팅 시스템과 양립가능한 애플리케이션, 라이브러리, 서비스(service), 또는 다른 소프트웨어 객체를 포함할 수 있다.
일부 실시형태에서는, 하나 이상의 부팅 이미지 또는 모듈이 필요에 따라 네트워크 위치로부터 다운로드될 수 있다. 예를 들면, 특정 소프트웨어 버전이 사용되도록 되어 있지만, 그 특정 소프트웨어 버전이 현재 서브시스템에 저장되어 있지 않다고 결정하는 것에 대응하여, 대응하는 부팅 이미지가 서브시스템의 메모리로 다운로드될 수 있다. 다운로드된 부팅 이미지는 상기한 바와 같이 현재의 부팅 이미지로 전환될 수 있다.
일부 실시형태에서는, 하드웨어 구성이 수술 시스템에 사용하기에 유효하기만 하면 수술 시스템이 추가적인 부속물에 연결될 수 있다. 예를 들면, 제2 제어 콘솔이 수술 시스템에 연결될 수 있다. 제2 제어 콘솔은 수술하는 동안 훈련 장치로 사용될 수 있거나, 예를 들면, 복잡한 수술 동안 하나 이상의 수술 기기를 작동시키기 위해 사용될 수 있다. 시스템 세트업을 위한 전반적인 통제권을 가진 제1 제어 콘솔은 제2 제어 콘솔에 대한 소프트웨어 버전을 결정할 수 있고 그 소프트웨어 버전을 로딩하기 위해서 제2 제어 콘솔에 해당 명령을 내릴 수 있다. 다른 부속물, 예를 들면, 특정 수술 시스템에 한정되어 있지 않은 추가적인 머니퓰레이터가 사용될 수 있다.
본 명세서에 기술된 발명의 여러 실시례와 작동은 디지털 전자 회로로 실시되거나, 컴퓨터 소프트웨어, 펌웨어, 또는 본 명세서에 개시된 여러 구조와 그것의 구조적인 등가물을 포함하는 하드웨어로 실시되거나, 또는 이들 중의 하나 이상의 결합 형태로 실시될 수 있다. 본 명세서에 기술된 발명의 여러 실시례는 하나 이상의 컴퓨터 프로그램으로, 다시 말해서, 데이터 프로세싱 장치에 의해 실행하기 위해, 또는 데이터 프로세싱 장치의 작동을 제어하기 위해 컴퓨터 저장 매체에 암호화된 컴퓨터 프로그램 명령의 하나 이상의 모듈로 실시될 수 있다. 대체 실시형태로서 또는 추가적으로, 상기 프로그램 명령은, 데이터 프로세싱 장치에 의해 실행하기 위해서 적절한 수신 장치로 전송하기 위해 정보를 암호화하기 위해 발생되는, 인위적으로 발생되어 전파된 신호, 예를 들면, 머신 생성 전기적 신호, 광 신호, 또는 전자기적 신호에 암호화될 수 있다. 컴퓨터 저장 매체는, 컴퓨터-판독가능 저장 장치, 컴퓨터-판독가능 저장 기판, 랜덤 액세스 메모리 어레이 또는 장치 또는 시리얼 액세스 메모리 어레이 또는 장치, 또는 이들의 하나 이상의 결합 형태가 될 수 있거나, 컴퓨터-판독가능 저장 장치, 컴퓨터-판독가능 저장 기판, 랜덤 액세스 메모리 어레이 또는 장치 또는 시리얼 액세스 메모리 어레이 또는 장치, 또는 이들의 하나 이상의 결합 형태에 포함될 수 있다. 게다가, 컴퓨터 저장 매체는 전파된 신호는 아니지만, 컴퓨터 저장 매체는 인위적으로 발생되어 전파된 신호로 암호화된 컴퓨터 프로그램 명령의 소스 또는 수신지일 수 있다. 컴퓨터 저장 매체는 또한 하나 이상의 별개의 물리적인 구성요소 또는 매체(예를 들면, 복수의 CD, 디스크, 또는 다른 저장 장치)일 수도 있거나, 하나 이상의 별개의 물리적인 구성요소 또는 매체(예를 들면, 복수의 CD, 디스크, 또는 다른 저장 장치)에 포함될 수도 있다.
본 명세서에 기술된 작동은 하나 이상의 컴퓨터-판독가능 저장 장치에 저장되거나 다른 소스로부터 수신된 데이터로 데이터 프로세싱 장치에 의해 실행되는 작동으로 실시될 수 있다.
"데이터 프로세싱 장치"라는 용어는, 하나의 예로서, 프로그램가능 프로세서, 컴퓨터, 시스템 온 어 칩(system on a chip), 또는 상기한 것의 복수 형태나 상기한 것의 결합 형태를 포함하는, 데이터를 처리하는 모든 종류의 장치, 디바이스, 그리고 기계를 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들면, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)를 포함할 수 있다. 상기 장치는 또한, 하드웨어에 추가하여, 논의 중인 컴퓨터 프로그램에 대한 실행 환경을 만들어 내는 코드, 예를 들면, 프로세서 펌웨어, 통신 규약 스택(protocol stack), 데이터베이스 관리 시스템, 오퍼레이팅 시스템, 크로스 플랫폼 실행 시간 환경(cross-platform runtime environment), 가상 기계, 또는 이들 중의 하나 이상의 결합 형태를 구성하는 코드를 포함할 수도 있다. 상기 장치와 실행 환경은 웹 서비스, 분산 컴퓨팅 인프라스트럭쳐 및 그리드 컴퓨팅 인프라스트럭쳐와 같은, 다양한 상이한 컴퓨팅 모델 인프라스트럭쳐를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로도 알려져 있음)은, 컴파일러형 언어 또는 해석형 언어, 선언형 언어 또는 절차형 언어를 포함하여, 임의의 형태의 프로그래밍 언어로 기록될 수 있으며, 독립형 프로그램 또는 모듈, 구성요소, 서브루틴(subroutine), 객체(object), 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여, 임의의 형태로 사용될 수 있다. 반드시 그런 것은 아니지만, 컴퓨터 프로그램은 하나의 파일 시스템의 하나의 파일에 대응할 수 있다. 프로그램은 다른 프로그램 또는 데이터(예를 들면, 마크업 언어 문서(markup language document)로 저장된 하나 이상의 스크립트)를 보유하는 파일의 일부분, 논의 중인 프로그램에 전용인 단일 파일, 또는 복수의 공동작용 파일(coordinated file)(예를 들면, 하나 이상의 모듈, 서브-프로그램, 또는 코드의 일부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 장소에 배치되어 있거나 여러 장소에 걸쳐서 분산되어 있고 통신망에 의해 서로 연결되어 있는 복수의 컴퓨터에서 실행되도록 사용될 수 있다.
본 명세서에 기술된 프로세스와 논리 흐름은 입력 데이터를 조작하고 출력을 발생시킴으로써 여러 조치를 수행하는 하나 이상의 컴퓨터 프로그램을 실행시키는 하나 이상의 프로그램가능 프로세서에 의해서 수행될 수 있다. 상기 프로세스와 논리 흐름은 특수 목적 논리 회로, 예를 들면, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)에 의해 수행될 수도 있고, 장치는 특수 목적 논리 회로, 예를 들면, FPGA(필드 프로그램 가능 게이트 어레이) 또는 ASIC(주문형 집적 회로)로 실시될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는, 하나의 예로서, 일반 목적 및 특수 목적 마이크로프로세서, 그리고 임의의 종류의 디지털 컴퓨터의 하나 이상의 임의의 프로세서를 포함한다. 일반적으로, 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리 또는 읽기 전용 메모리와 랜덤 액세스 메모리로부터 명령과 데이터를 수신할 것이다. 컴퓨터의 본질적인 요소는 명령에 따라 여러 조치를 수행하는 프로세서와 명령과 데이터를 저장하는 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터를 저장하는 하나 이상의 대용량 저장 장치, 예를 들면, 자기 디스크, 광자기 디스크, 또는 광 디스크를 포함하거나, 데이터를 저장하는 하나 이상의 대용량 저장 장치, 예를 들면, 자기 디스크, 광자기 디스크, 또는 광 디스크로부터의 데이터 수신 또는 상기 대용량 저장 장치로의 데이터 전송, 또는 상기 대용량 저장 장치로부터의 데이터의 수신 및 상기 대용량 저장 장치로의 데이터 전송을 하기 위해 작동가능하게 결합될 것이다. 그러나, 컴퓨터가 상기 대용량 저장 장치를 가지고 있을 필요는 없다. 더욱이, 컴퓨터는 다른 장치, 예를 들어, 몇 가지만 나열하면, 휴대폰, 개인용 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 전지구 위치 확인 시스템(GPS) 수신기, 또는 휴대용 저장 장치(예를 들면, 유니버설 시리얼 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령과 데이터를 저장하기에 적합한 장치는, 하나의 예로서, 반도체 메모리 장치, 예를 들면, EPROM, EEPROM, 그리고 플래시 메모리 장치; 자기 디스크, 예를 들면, 내부 하드 디스크 또는 분리성 디스크; 광자기 디스크; 그리고 CD-ROM 디스크와 DVD-ROM 디스크를 포함하는, 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 상기 프로세서와 메모리는 특수 목적 논리 회로에 의해 보완되거나 특수 목적 논리 회로에 편입될 수 있다.
사용자와의 상호작용을 제공하기 위해서, 본 명세서에 기술된 발명의 여러 실시례는 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들면, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터와, 사용자로 하여 컴퓨터에 입력을 제공할 수 있게 하는 키보드와 포인팅 디바이스, 예를 들면, 마우스 또는 트랙볼을 가진 컴퓨터로 실시될 수 있다. 사용자와의 상호작용을 제공하기 위해서 다른 종류의 장치가 사용될 수도 있다; 예를 들면, 사용자에게 제공된 피드백이 임의의 형태의 감각 피드백, 예를 들면, 시각 피드백, 청각 피드백, 또는 촉각 피드백이 될 수 있고; 사용자로부터의 입력은 음향 입력, 음성 입력, 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는, 사용자에 의해 사용되는 장치로 문서를 보내고 상기 장치로부터 문서를 받음으로써; 예를 들면, 사용자의 클라이언트 장치의 웹 브라우저로부터 수신된 요구에 대응하여 사용자의 클라이언트 장치의 웹 브라우저에 웹 페이지를 보냄으로써 사용자와 상호작용할 수 있다.
본 명세서에 기술된 발명의 여러 실시례는 후위(back-end) 구성요소, 예를 들면, 데이터 서버를 포함하거나, 또는 미들웨어(middleware) 구성요소, 예를 들면, 애플리케이션 서버를 포함하거나, 또는 전위(front-end) 구성요소, 예를 들면, 그래픽 사용자 인터페이스 또는 웹 브라우저를 가지고 있는 클라이언트 컴퓨터를 포함하는 컴퓨팅 시스템으로 실시될 수 있고, 상기 그래픽 사용자 인터페이스 또는 웹 브라우저를 통하여 사용자는 본 명세서에 기술된 발명의 한 실시형태, 또는 하나 이상의 상기 후위 구성요소, 미들웨어 구성요소, 또는 전위 구성요소의 임의의 결합 형태와 상호작용할 수 있고. 상기 컴퓨팅 시스템의 구성요소들은 임의의 형태 또는 매체의 디지털 데이터 통신, 예를 들면, 통신망에 의해 서로 연결될 수 있다. 통신망의 예는 근거리 통신망("LAN")과 광역 통신망("WAN"), 인터네트워크(inter-network)(예를 들면, 인터넷), 그리고 피어투피어 네트워크(예를 들면, 즉석 피어투피어 네트워크(ad hoc peer-to-peer network))를 포함한다.
상기 컴퓨팅 시스템은 마스터 장치와 하나 이상의 슬레이브 장치를 포함할 수 있다. 상기 마스터 장치와 슬레이브 장치는 대체로 서로 이격되어 있고 통상적으로 통신망을 통하여 상호작용한다. 상기 마스터 장치와 슬레이브 장치의 관계는 각각의 컴퓨터에서 실행되며 서로 마스터-슬레이브 관계를 가지는 컴퓨터 프로그램에 의해서 발생한다. 몇몇 실시례에서는, 마스터 장치가 데이터, 예를 들면, 제어 명령을 슬레이브 장치로 전송한다(예를 들면, 수술 기기를 이동시키기 위해서). 슬레이브 장치에서 생성된 데이터(예를 들면, 카메라 영상)가 마스터 장치로 전달될 수 있다.
몇몇 실시례에서는, 머니퓰레이터의 조인트가 능동 조인트와 수동 조인트를 포함할 수 있다. 능동 조인트(active joint)는 움직임이 수술 시스템 내에서 제공된, 예를 들면, 능동 조인트와 결합된 모터에 의해서 제공된 동력에 의해 제어되는 조인트이다. 수동 조인트(passive joint)는 수술 시스템 외부로부터 제공된 동력에 의해서만 움직이는 조인트이거나, 보다 간단하게는, 비동력식 조인트(non-powered joint)이다. 능동 조인트는 원격조종되거나 로봇식으로 제어될 필요가 없다. 능동 조인트의 움직임은 하나 이상의 대응하는 모터에 의해 제공될 수 있다. 몇몇 구현예에서는, 상기 모터가 브러시 없는 직류 전기 모터이다. 몇몇 다른 구현예에서는, 능동 조인트를 폐쇄 루프 피드백 시스템으로 제어하기 위해서 서보-기구가 사용된다. 외과의사가 특정 머니퓰레이터에 대한 마스터 컨트롤러에 입력을 제공하면, 외과의사가 특정 장소에 있는 수술 기기를 작동시킬 수 있도록 움직임이 계산된다.
안전상의 이유로, 수술 시스템에 사용되는 머니퓰레이터의 조인트는 대체로 머니퓰레이터의 제어되지 않는 움직임을 방지하기 위해서 잠금 기구를 포함하고 있다. 일부 실시형태에서는, 브레이크들로부터 동력이 제거되면 맞물리는 브레이크들에 의해 잠금상태가 제공된다. 이러한 유형의 브레이크의 예는 전기기계식 잠금장치 또는 전자기식 잠금장치를 포함한다. 일부 실시형태에서는, 머니퓰레이터의 손에 의한 비동력식 움직임을 가능하게 하기 위해서 이러한 브레이크가 풀어질 수 있다.
본 명세서가 많은 특정 실시형태 세부사항을 포함하고 있지만, 이러한 세부사항은 임의의 발명 또는 청구될 수 있는 발명의 범위에 대한 제한사항으로 해석되기 보다는, 특정 발명의 특정 실시례에 한정된 특징의 설명으로 해석되어야 한다. 별개의 실시례들과 관련하여 본 명세서에 기술되어 있는 어떤 특징들은 단일 실시례에서 결합되어 실시될 수도 있다. 반대로, 단일 실시례와 관련하여 기술되어 있는 다양한 특징들이 복수의 실시례에서 따로따로 임의의 적절한 서브컴비네이션(subcombination) 형태로 실시될 수도 있다. 더욱이, 상기 특징들이 특정 컴비네이션으로 작용하는 것으로 기술될 수 있고 처음에 청구될 수도 있지만, 청구된 컴비네이션으로부터의 하나 이상의 특징이 일부 경우에서는 컴비네이션으로부터 배제되고, 청구된 컴비네이션은 서브컴비네이션 또는 서브컴비네이션의 변형 형태에 관한 것일 수 있다.
마찬가지로, 여러 작동이 특정 순서로 도면에 도시되어 있지만, 이것은 바람직한 결과를 달성하기 위해서 상기 작동들이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나, 도시된 모든 작동이 수행되어야 하는 것을 요하는 것으로 이해되어서는 안된다. 어떤 상황에서는, 멀티태스킹과 병렬 처리가 유리할 수 있다. 게다가, 상기한 실시례에서 다양한 시스템 구성요소들의 분리는 모든 실시례에서 이러한 분리를 요하는 것으로 이해되어서는 안되고, 기술된 프로그램 구성요소와 시스템이 대체로 단일 소프트웨어 제품에 함께 통합될 수 있거나 복수의 소프트웨어 제품으로 패키지화될 수 있는 것으로 이해되어야 한다.
이와 같이, 본 발명의 특정 실시례를 기술하였다. 다른 실시례는 아래의 청구범위 내에 있다. 몇몇 경우에 있어서, 청구항에 기술된 조치(action)들은 상이한 순서로 수행될 수 있고 그럼에도 불구하고 바람직한 결과를 달성할 수 있다. 추가적으로, 첨부된 도면에 표시된 프로세스는 바람직한 결과를 달성하기 위해서 도시된 특정 순서, 또는 순차적인 순서를 반드시 요하는 것은 아니다. 어떤 실시형태에서는, 멀티태스킹과 병렬 처리가 유리할 수 있다.
Claims (36)
- 수술 시스템과 관련된 제어 서브시스템에서, 수술 시스템의 제1 환자측 서브시스템으로부터 하드웨어 구성을 입수하는 조치를 포함하고, 제1 환자측 서브시스템은 제어 서브시스템에 통신가능하게 결합되어 있고 제어 서브시스템에 의해 제어되고;
데이터 프로세싱 장치를 사용하여, 제어 서브시스템과 제1 환자측 서브시스템에 의해 사용될 소프트웨어 버전을 결정하는 조치를 포함하고, 소프트웨어 버전을 결정하는 조치는 복수의 소프트웨어 버전 중에서 상기 소프트웨어 버전을 선택하는 조치를 포함하고, 상기 복수의 소프트웨어 버전의 각각의 소프트웨어 버전이 특정 환자측 서브시스템과 관련되어 있고;
데이터 프로세싱 장치를 사용하여, 제1 환자측 서브시스템에게 상기 소프트웨어 버전을 사용할 것을 명령하는 조치를 포함하고;
데이터 프로세싱 장치를 사용하여, 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있는지 여부를 결정하는 조치를 포함하고;
상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되어 있지 않다고 결정하는 것에 대응하여, 데이터 프로세싱 장치를 사용하여, 상기 소프트웨어 버전을 상기 제어 서브시스템에 로딩하는 조치를 포함하고;
데이터 프로세싱 장치를 사용하여, 상기 제어 서브시스템과 제1 환자측 서브시스템에 로딩된 소프트웨어 버전의 유효성을 검증하는 조치를 포함하고;
데이터 프로세싱 장치를 사용하여, 수술 시스템을 상기 소프트웨어 버전으로 초기화하는 조치를 포함하는 방법이며,
상기 제어 서브시스템이 수술 시스템의 외과의사 콘솔의 구성요소를 포함하고, 상기 외과의사 콘솔이 수술 시스템의 오퍼레이터에게 제어 기능을 제공하도록 구성되고, 제1 환자측 서브시스템이 하나 이상의 대응하는 수술 기기를 유지하고 위치시키도록 구성된 하나 이상의 머니퓰레이터를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서, 데이터 프로세싱 장치를 사용하여, 제어 서브시스템과 제1 환자측 서브시스템에 의해 사용될 소프트웨어 버전을 결정하기 전에 제1 환자측 서브시스템의 하드웨어 구성의 유효성을 검증하는 조치를 더 포함하는 것을 특징으로 하는 방법.
- 제1항에 있어서, 제1 환자측 서브시스템에게 상기 소프트웨어 버전을 사용할 것을 명령하는 조치는:
복수의 부팅 이미지 중에서 상기 소프트웨어 버전을 포함하는 특정 부팅 이미지를 결정하고;
제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 것에 의해서 상기 소프트웨어 버전을 제1 환자측 서브시스템에 로딩하는 조치를 포함하는 것을 특징으로 하는 방법. - 제3항에 있어서, 제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 조치가,
상기 특정 부팅 이미지에 대한 제1 헤더 블록을 입수하는 조치;
입수된 제1 헤더 블록을 상기 특정 부팅 이미지에 재기록하는 조치;
현재의 부팅 이미지에 대한 제2 헤더 블록의 복사본을 저장하는 조치; 그리고
입수된 제1 헤더 블록을 재기록하는 조치와 제2 헤더 블록의 복사본을 저장하는 조치 후에, 현재의 부팅 이미지에 대한 제2 헤더 블록을 무효화하는 조치;
를 포함하는 것을 특징으로 하는 방법. - 제3항에 있어서, 제1 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 조치가,
상기 특정 부팅 이미지를 식별하는 파라미터를 저장하는 조치;
부트 로더에 의해, 저장된 파라미터를 판독하는 조치; 그리고
상기 부트 로더에 의해, 저장된 파라미터에 기초하여 상기 특정 부팅 이미지를 선택하는 조치;
를 포함하는 것을 특징으로 하는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서, 제어 서브시스템과 제1 환자측 서브시스템에 의해 사용될 소프트웨어 버전을 결정하는 조치가 상기 제어 서브시스템과 제1 환자측 서브시스템 사이의 공동 작업에 기초하여 실행되는 것을 특징으로 하는 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 소프트웨어 버전의 유효성을 검증하는 조치가,
상기 제어 서브시스템과 제1 환자측 서브시스템이 상기 소프트웨어 버전을 로딩하였는지 여부를 결정하는 조치; 그리고
상기 제어 서브시스템 또는 제1 환자측 서브시스템이 결정된 소프트웨어 버전을 로딩하지 않았다고 결정하는 것에 대응하여, 오류 메세지를 발생시키고 수술 시스템에 사용하기 위해 상기 제어 서브시스템 및 제1 환자측 서브시스템 중 적어도 하나의 초기화를 방지하는 조치;
를 포함하는 것을 특징으로 하는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
데이터 프로세싱 장치를 사용하여, 제2 환자측 서브시스템이 상기 제어 서브시스템에 통신가능하게 결합되어 있다는 것을 인식하는 조치;
데이터 프로세싱 장치를 사용하여, 제2 환자측 서브시스템에 대한 하드웨어 정보를 입수하는 조치;
데이터 프로세싱 장치를 사용하여, 제2 환자측 서브시스템의 하드웨어 정보의 유효성을 검증하는 조치; 그리고
데이터 프로세싱 장치를 사용하여, 제2 환자측 서브시스템으로 하여금 소프트웨어 버전을 로딩하게 하거나 제어 서브시스템으로 하여금 제2 환자측 서브시스템에 로딩된 소프트웨어에 해당하는 제2 소프트웨어 버전을 로딩하게 하는 조치;
를 더 포함하는 것을 특징으로 하는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서, 상기 소프트웨어 버전이 상기 제어 서브시스템에 현재 로딩되거나 상기 제1 환자측 서브시스템에 현재 로딩된 현재의 소프트웨어 버전에 기초하여 결정되는 것을 특징으로 하는 방법.
- 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 제1 환자측 서브시스템에서, 소프트웨어 버전을 로딩하라는 명령을 수신하는 조치;
상기 소프트웨어 버전이 제1 환자측 서브시스템에 현재 로딩된 제1 구성과는 상이한 제2 구성에 배치되어 있는 것을 결정하는 조치;
제2 구성에 대응하는 데이터를 저장하는 조치;
제2 구성을 다운로드하는 조치; 그리고
상기 제1 환자측 서브시스템을 제2 구성으로 구성하는 조치;
를 포함하는 것을 특징으로 하는 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
인터럽트에 대응하여,
상기 소프트웨어 버전 및 이전에 로딩된 소프트웨어 버전으로부터 유효한 소프트웨어 버전을 결정하는 조치; 그리고
상기 제어 서브시스템 또는 상기 제1 환자측 서브시스템을 상기 유효한 소프트웨어 버전으로 재부팅하는 조치;
를 포함하는 것을 특징으로 하는 방법. - 시스템으로서,
제어 서브시스템을 포함하고,
상기 제어 서브시스템은 복수의 환자측 서브시스템과 통신가능하게 결합되도록 구성되고, 각각의 환자측 서브시스템은 복수의 소프트웨어 구성의 소프트웨어 구성과 관련되어 있고,
상기 제어 서브시스템은:
복수의 환자측 서브시스템의 특정 환자측 서브시스템과 통신가능하게 결합된 제어 서브시스템의 조합을 결정하고,
상기 조합에 기초하여 복수의 소프트웨어 구성으로부터 특정 소프트웨어 구성을 선택하고,
특정 소프트웨어 구성의 유효성을 검증한 후에 상기 시스템을 초기화하는 것에 의해서 상기 시스템을 구성하고,
특정 환자측 서브시스템이 특정 하드웨어 구성을 가지고 있고,
상기 제어 서브시스템이 상기 특정 소프트웨어 구성을 결정하기 전에 특정 환자측 서브시스템에 통신가능하게 결합된 제어 서브시스템의 조합에 대해 특정 하드웨어 구성이 유효한 것을 결정하고,
상기 제어 서브시스템은:
특정 소프트웨어 구성을 상기 제어 서브시스템에 로딩하고, 또는
상기 제어 서브시스템으로부터 특정 환자측 서브시스템으로 특정 소프트웨어 구성을 로딩하라는 명령을 전송하는 것에 의해서 상기 시스템을 추가로 구성하고;
상기 제어 서브시스템은 수술 시스템의 외과의사 콘솔의 구성요소를 포함하고, 상기 외과의사 콘솔이 수술 시스템의 오퍼레이터에게 제어 기능을 제공하도록 구성되고;
특정 환자측 서브시스템은 상기 제어 서브시스템으로의 사용자 입력에 대응하여 하나 이상의 대응하는 수술 기기를 위치시키도록 구성된 하나 이상의 머니퓰레이터를 포함하는 것을 특징으로 하는 시스템. - 제12항에 있어서, 상기 제어 서브시스템으로부터 특정 환자측 서브시스템으로 특정 소프트웨어 구성을 로딩하라는 명령을 전송하는 것은:
복수의 부팅 이미지 중에서 상기 소프트웨어 구성을 포함하는 특정 부팅 이미지를 결정하고;
특정 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 것을 포함하는 것을 특징으로 하는 시스템. - 제13항에 있어서, 특정 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 것은:
상기 특정 부팅 이미지에 대한 제1 헤더 블록을 입수하는 것;
입수된 제1 헤더 블록을 상기 특정 부팅 이미지에 재기록하는 것;
현재의 부팅 이미지에 대한 제2 헤더 블록의 복사본을 저장하는 것; 그리고
입수된 제1 헤더 블록을 재기록하고 제2 헤더 블록의 복사본을 저장한 후에, 현재의 부팅 이미지에 대한 제2 헤더 블록을 무효화하는 것;
을 포함하는 것을 특징으로 하는 시스템. - 제13항에 있어서, 특정 환자측 서브시스템을 현재의 부팅 이미지로부터 상기 특정 부팅 이미지로 재부팅하는 것은:
상기 특정 부팅 이미지를 식별하는 파라미터를 저장하는 것;
부트 로더에 의해, 저장된 파라미터를 판독하는 것; 그리고
상기 부트 로더에 의해, 저장된 파라미터에 기초하여 상기 특정 부팅 이미지를 선택하는 것;
을 포함하는 것을 특징으로 하는 시스템. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562189523P | 2015-07-07 | 2015-07-07 | |
US62/189,523 | 2015-07-07 | ||
PCT/US2016/041052 WO2017007795A1 (en) | 2015-07-07 | 2016-07-06 | Control of multiple devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180016978A KR20180016978A (ko) | 2018-02-20 |
KR102495549B1 true KR102495549B1 (ko) | 2023-02-06 |
Family
ID=57685909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177031975A KR102495549B1 (ko) | 2015-07-07 | 2016-07-06 | 복수의 장치의 제어 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10376325B2 (ko) |
EP (1) | EP3319540B1 (ko) |
JP (1) | JP6772185B2 (ko) |
KR (1) | KR102495549B1 (ko) |
CN (1) | CN107690319B (ko) |
WO (1) | WO2017007795A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8556807B2 (en) * | 2006-12-21 | 2013-10-15 | Intuitive Surgical Operations, Inc. | Hermetically sealed distal sensor endoscope |
US8814779B2 (en) | 2006-12-21 | 2014-08-26 | Intuitive Surgical Operations, Inc. | Stereoscopic endoscope |
US11642183B2 (en) * | 2018-06-06 | 2023-05-09 | Verily Life Sciences Llc | Systems and methods for fleet management of robotic surgical systems |
JP7273188B2 (ja) * | 2019-12-12 | 2023-05-12 | 日立Astemo株式会社 | 車両制御装置及びプログラム管理方法 |
TWI715433B (zh) * | 2020-02-06 | 2021-01-01 | 瑞昱半導體股份有限公司 | 啟動電路、啟動方法以及啟動系統 |
CN114469354B (zh) * | 2022-04-13 | 2022-06-24 | 深圳市爱博医疗机器人有限公司 | 一种介入手术机器人从端初始化方法和可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168571A1 (en) * | 2005-11-02 | 2007-07-19 | Dell Products L.P. | System and method for automatic enforcement of firmware revisions in SCSI/SAS/FC systems |
US20130036415A1 (en) * | 2011-08-02 | 2013-02-07 | Roche Diagnostics Operations, Inc. | Software distribution to medical devices via an intermediary which enforces maintenance of a transaction log |
Family Cites Families (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5855583A (en) | 1996-02-20 | 1999-01-05 | Computer Motion, Inc. | Method and apparatus for performing minimally invasive cardiac procedures |
US6331181B1 (en) * | 1998-12-08 | 2001-12-18 | Intuitive Surgical, Inc. | Surgical robotic tools, data architecture, and use |
US6132368A (en) | 1996-12-12 | 2000-10-17 | Intuitive Surgical, Inc. | Multi-component telepresence system and method |
US6714839B2 (en) | 1998-12-08 | 2004-03-30 | Intuitive Surgical, Inc. | Master having redundant degrees of freedom |
US6246200B1 (en) | 1998-08-04 | 2001-06-12 | Intuitive Surgical, Inc. | Manipulator positioning linkage for robotic surgery |
US6951535B2 (en) * | 2002-01-16 | 2005-10-04 | Intuitive Surgical, Inc. | Tele-medicine system that transmits an entire state of a subsystem |
US8527094B2 (en) | 1998-11-20 | 2013-09-03 | Intuitive Surgical Operations, Inc. | Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures |
US9345544B2 (en) | 1999-09-17 | 2016-05-24 | Intuitive Surgical Operations, Inc. | Systems and methods for avoiding collisions between manipulator arms using a null-space |
US8004229B2 (en) | 2005-05-19 | 2011-08-23 | Intuitive Surgical Operations, Inc. | Software center and highly configurable robotic systems for surgery and other uses |
US6658659B2 (en) * | 1999-12-16 | 2003-12-02 | Cisco Technology, Inc. | Compatible version module loading |
JP2001216167A (ja) * | 2000-02-04 | 2001-08-10 | Minolta Co Ltd | 本体と周辺装置からなるシステム |
US6854052B2 (en) * | 2001-04-18 | 2005-02-08 | International Business Machines Corporation | Method to validate system configuration |
US6728599B2 (en) | 2001-09-07 | 2004-04-27 | Computer Motion, Inc. | Modularity system for computer assisted surgery |
JP2003084994A (ja) * | 2001-09-12 | 2003-03-20 | Olympus Optical Co Ltd | 医療システム |
US6793653B2 (en) | 2001-12-08 | 2004-09-21 | Computer Motion, Inc. | Multifunctional handle for a medical robotic system |
US7363484B2 (en) | 2003-09-15 | 2008-04-22 | Hewlett-Packard Development Company, L.P. | Apparatus and method for selectively mapping proper boot image to processors of heterogeneous computer systems |
US7379790B2 (en) | 2004-05-04 | 2008-05-27 | Intuitive Surgical, Inc. | Tool memory-based software upgrades for robotic surgery |
US9418040B2 (en) * | 2005-07-07 | 2016-08-16 | Sciencelogic, Inc. | Dynamically deployable self configuring distributed network management system |
US8167872B2 (en) | 2006-01-25 | 2012-05-01 | Intuitive Surgical Operations, Inc. | Center robotic arm with five-bar spherical linkage for endoscopic camera |
US8966235B2 (en) * | 2006-10-24 | 2015-02-24 | Kent E. Dicks | System for remote provisioning of electronic devices by overlaying an initial image with an updated image |
US8065397B2 (en) * | 2006-12-26 | 2011-11-22 | Axeda Acquisition Corporation | Managing configurations of distributed devices |
ES2693097T3 (es) * | 2007-05-30 | 2018-12-07 | Ascensia Diabetes Care Holdings Ag | Sistema y método para gestionar datos de salud |
JP2008305328A (ja) * | 2007-06-11 | 2008-12-18 | Canon Inc | 画像形成装置及びデータ処理装置ならびにデータ処理方法ならびにデータ処理方法を実行するプログラム |
US20090150865A1 (en) * | 2007-12-07 | 2009-06-11 | Roche Diagnostics Operations, Inc. | Method and system for activating features and functions of a consolidated software application |
US8400094B2 (en) | 2007-12-21 | 2013-03-19 | Intuitive Surgical Operations, Inc. | Robotic surgical system with patient support |
US8700789B2 (en) * | 2009-03-16 | 2014-04-15 | Apple Inc. | Accessory and mobile computing device communication using an application communication protocol |
US8897920B2 (en) * | 2009-04-17 | 2014-11-25 | Intouch Technologies, Inc. | Tele-presence robot system with software modularity, projector and laser pointer |
US8521331B2 (en) | 2009-11-13 | 2013-08-27 | Intuitive Surgical Operations, Inc. | Patient-side surgeon interface for a minimally invasive, teleoperated surgical instrument |
KR20110055841A (ko) * | 2009-11-20 | 2011-05-26 | 삼성전자주식회사 | 시스템의 복구 방법 및 이를 지원하는 장치 |
JP2011178117A (ja) * | 2010-03-03 | 2011-09-15 | Fuji Xerox Co Ltd | 画像形成装置、及び給紙装置互換判定処理プログラム |
US8746252B2 (en) | 2010-05-14 | 2014-06-10 | Intuitive Surgical Operations, Inc. | Surgical system sterile drape |
US9229731B2 (en) * | 2011-05-06 | 2016-01-05 | Dell Products L.P. | System and method for facilitating booting using a plurality of boot methods |
US9582656B2 (en) * | 2011-09-12 | 2017-02-28 | Microsoft Corporation | Systems for validating hardware devices |
JP6033874B2 (ja) * | 2011-10-21 | 2016-11-30 | ホスピーラ インコーポレイテッド | 医療装置更新システム |
DE102012001456A1 (de) * | 2012-01-25 | 2013-07-25 | Dräger Medical GmbH | Versionskontrolle für medizinische Anästhesiegeräte |
GB2508599A (en) * | 2012-12-04 | 2014-06-11 | Ibm | Software version management when downgrading software |
EP3670112A1 (en) | 2013-02-15 | 2020-06-24 | Intuitive Surgical Operations, Inc. | Systems and methods for synchronizing nodes of a robotic system |
KR102117270B1 (ko) * | 2013-03-06 | 2020-06-01 | 삼성전자주식회사 | 수술 로봇 시스템 및 그 제어방법 |
KR20150129692A (ko) * | 2013-03-14 | 2015-11-20 | 마이크로칩 테크놀로지 인코포레이티드 | 멀티 부트 디바이스들용 부트 시퀀싱 |
EP2973365A4 (en) * | 2013-03-15 | 2016-11-02 | Stryker Corp | PATIENT SUPPORT APPARATUS WITH REMOTE COMMUNICATIONS |
US9186518B2 (en) * | 2013-09-06 | 2015-11-17 | Boston Scientific Neuromodulation Corporation | Medical device application for configuring a mobile device into an external controller for an implantable medical device |
JP2015069315A (ja) * | 2013-09-27 | 2015-04-13 | アズビル株式会社 | デバイス |
US9424020B2 (en) * | 2014-01-13 | 2016-08-23 | Carefusion 303, Inc. | Remote flashing during infusion |
EP4218551A3 (en) * | 2015-02-27 | 2023-08-09 | Zoll Medical Corporation | Downloading and booting method and system for a wearable medical device |
-
2016
- 2016-07-06 KR KR1020177031975A patent/KR102495549B1/ko active IP Right Grant
- 2016-07-06 WO PCT/US2016/041052 patent/WO2017007795A1/en active Application Filing
- 2016-07-06 US US15/742,303 patent/US10376325B2/en active Active
- 2016-07-06 JP JP2017557046A patent/JP6772185B2/ja active Active
- 2016-07-06 CN CN201680032099.0A patent/CN107690319B/zh active Active
- 2016-07-06 EP EP16821895.6A patent/EP3319540B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168571A1 (en) * | 2005-11-02 | 2007-07-19 | Dell Products L.P. | System and method for automatic enforcement of firmware revisions in SCSI/SAS/FC systems |
US20130036415A1 (en) * | 2011-08-02 | 2013-02-07 | Roche Diagnostics Operations, Inc. | Software distribution to medical devices via an intermediary which enforces maintenance of a transaction log |
Also Published As
Publication number | Publication date |
---|---|
JP2018526699A (ja) | 2018-09-13 |
US10376325B2 (en) | 2019-08-13 |
KR20180016978A (ko) | 2018-02-20 |
EP3319540A4 (en) | 2019-03-13 |
JP6772185B2 (ja) | 2020-10-21 |
EP3319540B1 (en) | 2024-01-24 |
CN107690319A (zh) | 2018-02-13 |
EP3319540A1 (en) | 2018-05-16 |
CN107690319B (zh) | 2021-01-15 |
WO2017007795A1 (en) | 2017-01-12 |
US20180206925A1 (en) | 2018-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102495549B1 (ko) | 복수의 장치의 제어 | |
JP5000484B2 (ja) | ロボット手術用のツールメモリベースのソフトウェアの更新 | |
US12082982B2 (en) | Enabling secure data exchange between a robotic surgical system and surgical tools via near field communication (NFC) | |
JP3582348B2 (ja) | 手術装置 | |
TW201913369A (zh) | 具有雙韌體儲存空間之伺服器及其韌體更新方法 | |
WO2022216689A1 (en) | Systems and methods for generating dynamic graphical user interfaces for monitoring and controlling connected devices | |
US20220273368A1 (en) | Auto-configurable simulation system and method | |
JP2016024798A (ja) | 冗長化コントローラシステム、その待機系コントローラ | |
TW201629757A (zh) | 端點伺服器的控制模組及其韌體更新方法 | |
JP2004258926A (ja) | プログラマブルコントローラのプログラムのシミュレーション装置、及び方法 | |
WO2018229926A1 (ja) | 医療用マニピュレータ | |
CN117376119A (zh) | 硬件设备的配置方法、装置、介质及手术机器人 | |
WO2022192342A1 (en) | Adaptive learning for robotic arthroplasty |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |