KR20220041038A - 슬라이드-스캐너 제어 - Google Patents

슬라이드-스캐너 제어 Download PDF

Info

Publication number
KR20220041038A
KR20220041038A KR1020217020364A KR20217020364A KR20220041038A KR 20220041038 A KR20220041038 A KR 20220041038A KR 1020217020364 A KR1020217020364 A KR 1020217020364A KR 20217020364 A KR20217020364 A KR 20217020364A KR 20220041038 A KR20220041038 A KR 20220041038A
Authority
KR
South Korea
Prior art keywords
rack
carousel
scanning system
slide
slots
Prior art date
Application number
KR1020217020364A
Other languages
English (en)
Inventor
페이맨 나즈마바디
니콜라스 뉴버그
프렌타쉬 드젤로세빅
애런 스티어렛
Original Assignee
라이카 바이오시스템즈 이미징 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 라이카 바이오시스템즈 이미징 인크. filed Critical 라이카 바이오시스템즈 이미징 인크.
Publication of KR20220041038A publication Critical patent/KR20220041038A/ko

Links

Images

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/0004Microscopes specially adapted for specific applications
    • G02B21/002Scanning microscopes
    • G02B21/0024Confocal scanning microscopes (CSOMs) or confocal "macroscopes"; Accessories which are not restricted to use with CSOMs, e.g. sample holders
    • G02B21/0036Scanning details, e.g. scanning stages
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N21/00Investigating or analysing materials by the use of optical means, i.e. using sub-millimetre waves, infrared, visible or ultraviolet light
    • G01N21/84Systems specially adapted for particular applications
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00029Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor provided with flat sample substrates, e.g. slides
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/02Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor using a plurality of sample containers moved by a conveyor system past one or more treatment or analysis stations
    • G01N35/025Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor using a plurality of sample containers moved by a conveyor system past one or more treatment or analysis stations having a carousel or turntable for reaction cells or cuvettes
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01VGEOPHYSICS; GRAVITATIONAL MEASUREMENTS; DETECTING MASSES OR OBJECTS; TAGS
    • G01V8/00Prospecting or detecting by optical means
    • G01V8/10Detecting, e.g. by using light barriers
    • G01V8/20Detecting, e.g. by using light barriers using multiple transmitters or receivers
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/0004Microscopes specially adapted for specific applications
    • G02B21/002Scanning microscopes
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/06Means for illuminating specimens
    • G02B21/08Condensers
    • G02B21/086Condensers for transillumination only
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/24Base structure
    • G02B21/26Stages; Adjusting means therefor
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/34Microscope slides, e.g. mounting specimens on microscope slides
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B21/00Microscopes
    • G02B21/36Microscopes arranged for photographic purposes or projection purposes or digital imaging or video purposes including associated control and data processing arrangements
    • G02B21/361Optical details, e.g. image relay to the camera or image sensor
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00029Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor provided with flat sample substrates, e.g. slides
    • G01N2035/00039Transport arrangements specific to flat sample substrates, e.g. pusher blade
    • G01N2035/00049Transport arrangements specific to flat sample substrates, e.g. pusher blade for loading/unloading a carousel
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00029Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor provided with flat sample substrates, e.g. slides
    • G01N2035/00089Magazines
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01NINVESTIGATING OR ANALYSING MATERIALS BY DETERMINING THEIR CHEMICAL OR PHYSICAL PROPERTIES
    • G01N35/00Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor
    • G01N35/00029Automatic analysis not limited to methods or materials provided for in any single one of groups G01N1/00 - G01N33/00; Handling materials therefor provided with flat sample substrates, e.g. slides
    • G01N2035/00099Characterised by type of test elements
    • G01N2035/00138Slides

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Optics & Photonics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biochemistry (AREA)
  • Health & Medical Sciences (AREA)
  • Immunology (AREA)
  • Pathology (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Geophysics (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Microscoopes, Condenser (AREA)

Abstract

슬라이드 스캐닝 시스템의 제어 프로세스는 스캐닝 시스템의 노출된 부분을 ㅌ오하여 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯을 가진 캐러셀을 포함한다. 일 실시예에서, 스캐닝 시스템의 초기화는 후방 단부 및 전방 단부 구성 요소들을 자동으로 원점 복귀시키는 것을 포함하며, 전방 단부 구성 요소들은 캐러셀을 포함한다. 캐러셀에 있는 모든 슬라이드 랙의 목록(inventory)는 자동으로 생성된다. 만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있다면, 슬라이드 랙은 대응하는 랙 슬롯으로 자동으로 언로딩된다. 또한, 캐러셀은 노출된 부분 안에 있는 랙 슬롯들의 시작 서브세트(starting subset)를 노출시키도록 자동으로 위치된다. 이러한 시작 서브세트는 인접한 비어 있는 랙 슬롯들의 최대 세그먼트를 포함할 수 있다.

Description

슬라이드-스캐너 제어
본 출원은 2019 년 8 월 6 일자로 제출된 미국 가출원 No. 62/883, 340 의 우선권을 주장하며, 상기 출원의 내용은 본원에 참조로서 포함된다.
또한 본 출원은 다음의 출원들에 관련된것으로서, 다음의 출원들은 본원에 참조로서 포함된다.
국제 특허 출원 번호: 2016 년 9 월 23 일에 출원된 PCT/US2016/053581;
국제 특허 출원 번호: 2017 년 4 월 20 일에 출원된 PCT/US2017/028532;
국제 특허 출원 번호: 2018 년 11 월 30 일에 출원된 PCT/US2018/063456;
국제 특허 출원 번호: 2018 년 11 월 30 일 출원된 PCT/US2018/063460;
국제 특허 출원 번호: 2018 년 11 월 30 일에 출원된 PCT/US2018/063450;
국제 특허 출원 번호: 2018 년 11 월 30 일에 출원된 PCT/US2018/063461;
국제 특허 출원 번호: 2018 년 11 월 27 일에 출원된 PCT/US2018/062659;
국제 특허 출원 번호: 2018 년 11 월 30 일 출원된 PCT/US2018/063464;
국제 특허 출원 번호: 2018 년 10 월 4 일에 출원된 PCT/US2018/054460;
국제 특허 출원 번호: 2018 년 11 월 30 일에 출원된 PCT/US2018/063465;
국제 특허 출원 번호: 2018 년 10 월 4 일에 제출 된 PCT/US2018/054462;
국제 특허 출원 번호: 2018 년 11 월 30 일에 출원된 PCT/US2018/063469;
국제 특허 출원 번호: 2018 년 10 월 4 일 출원된 PCT/US2018/054464;
국제 특허 출원 번호: 2018 년 8 월 17 일에 출원된 PCT/US2018/046944;
국제 특허 출원 번호: 2018 년 10 월 4 일에 제출 된 PCT/US2018/054470;
국제 특허 출원 번호: 2018 년 9 월 28 일 출원된 PCT/US2018/053632;
국제 특허 출원 번호: 2018 년 9 월 28 일에 출원된 PCT/US2018/053629;
국제 특허 출원 번호: 2018 년 9 월 28 일 출원된 PCT/US2018/053637;
국제 특허 출원 번호: 2018 년 11 월 28 일에 출원된 PCT/US2018/062905;
국제 특허 출원 번호: 2018 년 11 월 29 일에 출원된 PCT/US2018/063163;
국제 특허 출원 번호: 2017 년 12 월 29 일에 출원된 PCT/US2017/068963;
국제 특허 출원 번호: PCT/US2019/020411, 2019 년 3 월 1 일 제출;
미국 특허 출원 No. 29/631,492(2017 년 12 월 29 일 출원);
미국 특허 출원 번호 29/631,495(2017 년 12 월 29 일 출원);
미국 특허 출원 번호 29/631,499,(2017 년 12 월 29 일 출원);
미국 특허 출원 번호 29/631,501,(2017 년 12 월 29 일 출원);
본 명세서에 설명된 실시예는 일반적으로 슬라이드 스캐닝 시스템의 제어에 관한 것이며, 보다 상세하게는 슬라이드 스캐닝 시스템의 작업 흐름(work flow)를 위한 프로세스를 제어하기 위한 것이다.
슬라이드 스캐닝 시스템의 작업 흐름를 관리하는 제어 프로세스를 위한 시스템, 방법 및 비 일시적 컴퓨터 독출 가능 매체가 개시된다.
일 실시예에서, 스캐닝 시스템의 제어 방법이 개시되는데, 스캐닝 시스템은 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근 가능한 노출된 부분을 통해 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯들을 구비한 캐러셀을 포함하고, 상기 제어 방법은, 스캐닝 시스템이 시작될 때, 캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소드을 원점 복귀(homing)시키는 단계; 캐러셀의 복수의 랙 슬롯 내에서 모든 슬라이드 랙들의 목록(inventory)을 생성시키는 단계; 만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하는 단계; 및, 노출된 부분 내의 복수의 랙 슬롯들의 시작 서브 세트(starting subset)를 노출시키도록 캐러셀을 위치시키는 단계;들에 의하여 자동적으로 스캐닝 시스템을 초기화시키도록 적어도 하나의 하드웨어 프로세서의 사용하는 것을 포함한다.
상기 복수의 랙 슬롯 각각은 복수의 랙 슬롯 사이의 순서를 나타내는 인덱스(index)와 연관될수 있고, 상기 복수의 랙 슬롯들중 시작 서브세트(starting subset)는 인접한 비어 있는 랙 슬롯들의 최대 세그먼트로 이루어지고, 캐러셀을 위치시키는 단계는, 인접한 비어 있는 랙 슬롯들의 2 개 이상의 최대 세그먼트들이 있을 때, 2 개 이상의 최대 세그먼트들내의 랙 슬롯들과 관련된 인덱스들에 기초하여, 시작 서브세트로서 2 개 이상의 최대 세그먼트들중 하나를 선택하는 것을 포함한다.
전방 단부 구성 요소들의 원점 복귀 단계는: 리미트 스위치가 트리거링(triggering)될 때까지 캐러셀을 제 1 방향으로 회전시키고; 리미트 스위치를 중지(back off)시키도록 캐러셀을 제 1 방향과 반대인 제 2 방향으로 회전시키고; 리미트 스위치를 트리거링하도록 캐러셀을 제 1 방향으로 회전시키고; 캐러셀의 위치 선정을 통제하는 인코더의 하나의 위치를 제로화(zeroing)함으로써; 캐러셀을 원점 복귀시키는 것을 포함한다.
슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하는 단계는, 슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하기 전에, 스캐닝 스테이지로부터 슬라이드 랙에 있는 대응 슬라이드 슬롯으로 슬라이드를 언로딩하는 것을 포함한다.
상기 방법은, 스캐닝 시스템을 초기화시킨 이후 스캐닝 시스템의 작동 동안에, 캐러셀을 자동으로 위치시켜서 스캐닝 시스템의 노출된 부분 안에 복수의 랙 슬롯들 중 인접한 비어 있는 랙 슬롯들의 최대 세그먼트를 노출시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함한다.
상기 방법은 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소에 의해 처리되는 동안 캐러셀을 회전시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함한다. 캐러셀의 회전은, 스캐닝 시스템의 노출된 부분 안에 복수의 랙 슬롯들 중 인접한 비어 있는 랙 슬롯들의 최대 세그먼트를 노출시키도록 캐러셀을 자동으로 위치시키는 것을 포함한다. 상기 캐러셀의 회전은 사용자 작동에 응답하여 상기 캐러셀을 위치시키는 것을 포함한다. 사용자의 작동에 응답하여 상기 캐러셀을 위치시키는 것은, 상기 복수의 랙 슬롯들 중 하나에 대응하는 슬라이드 랙의 사용자 선택에 응답하여: 만약 선택된 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소들에 의해 처리되고 있다면, 선택된 슬라이드 랙의 처리를 중단하고 슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하고;스캐닝 시스템의 노출된 부분 안에 대응 랙 슬롯을 노출시키기 위하여 캐러셀을 위치시키는; 것을 포함한다.
스캐닝 시스템은 스캐닝 시스템의 노출된 부분 안에 위치된 복수의 랙 슬롯들 중 하나와 각각 연관된 복수의 시각 지시기(visual indicator)를 포함하고, 상기 제어 방법은, 스캐닝 시스템의 노출된 부분 안에 위치한 복수의 랙 슬롯 각각에 대해: 랙 슬롯 안의 슬라이드 랙 또는 랙 슬롯의 상태를 검출하고; 검출된 상태를 지시하도록 랙 슬롯과 연관된 시각 지시기를 제어하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함한다. 복수의 시각 지시기들 각각은 광(light)이고, 적어도 하나의 프로세서는, 스캐닝 시스템의 노출된 부분 안에 위치된 복수의 랙 슬롯들 각각에 대하여, 검출된 상태와 연관된 칼러로 빛나도록 각각의 광을 제어한다.
캐러셀을 위치시키는 것은 복수개의 인덱싱된 위치들중 하나로 캐러셀을 회전시키는 것을 포함할 수 있다. 복수개의 인덱싱된 위치들은 복수의 랙 슬롯들의 수와 동일한 다수의 인덱싱된 위치들로 이루어질 수 있다.
제어 방법은, 스캐닝 시스템의 노출된 부분에 있는 복수의 랙 슬롯들중 하나로의 슬라이드 랙의 삽입을 검출하고; 하나의 랙 슬롯으로 슬라이드 랙이 삽입됨을 검출하는 것에 응답하여, 하나의 랙 슬롯이 슬라이드 랙에 의해 점유됨을 반영하게끔 하나의 랙 슬롯의 상태를 업데이트 하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다.
스캐닝 시스템은 스캐닝 시스템의 노출된 부분 주위에 광 커튼(light curtain)을 포함할 수 있고, 상기 제어 방법은:광 커튼의 중단을 검출하고; 광 커튼의 중단이 검출되는 동안 회전을 방지하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다. 상기 제어 방법은 캐러셀을 회전시키기로 판단할 때, 자동적으로, 캐러셀의 회전을 지연 기간 동안 지연시키고; 광 커튼의 중단이 검출될 때마다 지연 기간을 재설정(reset)하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함한다. 스캐닝 시스템은 디스플레이를 포함할 수 있고, 상기 제어 방법은 디스플레이상의 그래픽 사용자 인터페이스 안에 지연 기간의 남은 양을 지시하도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다.
상기 제어 방법은 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소들에 의해 처리되는 동안 캐러셀을 회전시킬 때, 처리되고 있는 슬라이드 랙에 대응하는 복수의 랙 슬롯들중 하나가 스캐닝 시스템의 노출된 부분 안에 노출되는 것을 방지하기 위하여 캐러셀을 회전시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다.
상기 방법은 캐러셀이 이동한 회전 거리를 모니터하고; 상기 회전 거리가 미리 결정된 쓰레숄드를 초과한 것을 판단함에 응답하여, 캐러셀을 위한 드리프트 보정(drift correction)을 실행하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다.
스캐닝 시스템은 캐러셀과 스캐닝 시스템의 노출된 부분 둘레의 프레임 사이의 핀치 포인트(pinch point)에 있는 핀치 포인트 센서(pinch point sensor)를 포함할 수 있고, 상기 제어 방법은: 핀치 포인트 센서를 통하여 핀치 포인트에서의 장애물을 검출하고; 장애물이 검출되는 동안 회전을 방지하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함한다.
상기 방법은, 후방 단부 상태 장치(back-end state machine)에 따라 후방 단부 구성 요소들을 제어하고; 후방 단부 상태 장치에 독립적으로 작동되는 전방 단부 상태 장치(front-end state machine)에 따라 전방 단부 구성 요소들을 제어하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함할 수 있다. 상기 후방 단부 상태 장치는 캐러셀을 포함하는 하나 이상의 전방 단부 구성 요소를 제어하기 위해 상기 전방 단부 상태 장치로 명령을 송신하도록 구성될 수 있다.
일 실시예에서, 적어도 하나의 하드웨어 프로세서; 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯을 포함하는 캐러셀(carousel); 상기 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근될 수 있는, 노출된 부분; 및, 하나 이상의 소프트웨어 모듈;을 포함하는 스캐닝 시스템으로서; 상기 하나 이상의 소프트웨어 모듈은, 스캐닝 시스템이 시작될 때 적어도 하나의 하드웨어 프로세서에 의해 실행되면, 자동적으로, 캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소들을 원점 복귀시키고; 캐러셀의 복수의 랙 슬롯 안에 있는 모든 슬라이드 랙들의 목록(inventory)을 생성하고; 만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하고; 노출된 부분 안의 복수의 랙 슬롯들의 시작 서브세트(starting subset)를 노출시키도록 캐러셀을 위치시켜서; 스캐닝 시스템을 초기화하도록 구성되는, 스캐닝 시스템이 개시된다.
일 실시예에서, 명령들이 저장된 비 일시적인 컴퓨터 독출 가능 매체(non-transitory computer-readable medium)로서, 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근될 수 있는 노출 부분을 통해 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯을 구비한 캐러셀을 포함하는 스캐닝 시스템의 프로세서에 의해 상기 명령들이 실행되면, 상기 명령들은 스캐닝 시스템이 시작될 때 상기 프로세서로 하여금, 캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소들을 원점 복귀시키고; 캐러셀의 복수의 랙 슬롯 안에 있는 모든 슬라이드 랙들의 목록(inventory)을 생성하고; 만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하고; 노출된 부분 안의 복수의 랙 슬롯들의 시작 서브세트(starting subset)를 노출시키도록 캐러셀을 위치시켜서; 자동적으로 스캐닝 시스템을 초기화하게 하는, 컴퓨터 독출 가능 매체가 개시된다.
본 발명의 구조 및 작동에 관한 세부 사항은 첨부 된 도면을 참조하여 부분적으로얻을 수 있으며, 여기서 동일한 참조 번호는 동일한 부분을 나타낸다:
도 1a는 일 실시예에 따른, 본 명세서에 설명된 다양한 실시예들과 관련하여 사용될 수 있는 예시적인 프로세서 가능 장치를 도시한다.
도 1b는 일 실시예에 따른 단일 선형 어레이를 가지는 예시적인 라인-스캔 카메라를 도시한다.
도 1c는 일 실시예에 따른, 3 개의 선형 어레이를 가지는 예시적인 라인-스캔 카메라를 도시한다.
도 1d 는 일 실시예에 따른, 복수의 선형 어레이를 가지는 예시적인 라인-스캔 카메라를 도시한다.
도 2a 및 도 2b는 일 실시예에 따른 예시적인 캐러셀의 평면도 및 사시도를 각각 도시한다.
도 2c 및 도 2d는 일 실시예에 따른 복수의 슬라이드 랙이 로딩된 예시적인 캐러셀의 평면도 및 사시도를 각각 도시한다.
도 2e 및 도 2f는 일 실시예에 따른 예시적인 슬라이드 랙의 측면도 및 예시적인 슬라이드 랙의 사시도를 각각 도시한다.
도 3a 및 도 3b는 일 실시예에 따른 스캐닝 시스템의 예시적인 푸시/풀 어셈블리, 슬라이드 랙 및 스캐닝 스테이지의 사시도를 도시한다.
도 4는 일 실시예에 따른 스캐닝 시스템을 제어하기 위한 예시적인 비전 처리 유닛(vision processing unit, VPU)을 도시한다.
도 5는 일 실시예에 따른 중앙 장치 관리를 위한 외부 소프트웨어의 예를 도시한다.
도 6은 일 실시예에 따른, VPU의 제어 소프트웨어와 외부 소프트웨어 간의 인터페이스의 예를 도시한다.
도 7a 및 도 7b는 일 실시예에 따라서, 스캐닝 시스템에 있는 캐 러셀의 인덱싱된 위치와 인덱싱되지 않은 위치를 각각 도시한다.
도 8은 일 실시예에 따른 스캐닝 시스템의 핀치 포인트 센서를 도시한다.
도 9a 및 도 9b는 일 실시예에 따른 스캐닝 시스템의 광 커튼을 도시한다.
도 10은 일 실시예에 따른 스캐닝 시스템의 자동 로더 시스템의 예시적인 초기화 프로세스를 도시한다.
도 11a 및 도 11b는 일 실시예에 따른 스캐닝 시스템의 자동 로더 시스템의 거동을 도시한다.
도 12는 일 실시예에 따라서, 스캐닝 시스템의 콘솔 상에 디스플레이될 수 있는 그래픽 사용자 인터페이스의 캐러셀 스크린을 도시한다.
도 13은 일 실시예에 따라서, 스캐닝 시스템의 캐러셀에 대한 예시적인 원점 복귀 프로세스를 도시한다.
도 14a-14c는 일 실시예에 따른 슬라이드 랙을 로딩하기 위한 프로세스를 도시한다.
도 15a-15c는 일 실시예에 따른 슬라이드 랙을 언로딩하기위한 프로세스를 도시한다.
도 16a-16e는 일 실시예에 따라서, 노출되어야 하는 인접한 랙 슬롯의 세그먼트를 식별하기위한 예시적인 랙 슬롯 값을 도시한다.
도 17a-17c는 일 실시예에 따른 능동 슬라이드 랙의 능동 회전을 도시한다.
도 18은 일 실시예에 따른, 비 능동 슬라이드 랙의 능동 회전을위한 프로세스를 도시한다.
도 19는 일 실시예에 따라서, 스캐닝 시스템의 캐러셀의 움직임 동안 핀치-포인트 센서가 사용되는 프로세스를 예시한다.
도 20은 일 실시예에 따른 2 중 상태 장치의 데이터 흐름을 도시한다.
도 21은 일 실시예에 따라서, 2 중 상태 장치를 사용하는, 스캐닝 작업 흐름, 콘솔 및 작업자 간의 예시적인 하이 레벨 상호 작용을 도시한다.
일 실시예에서, 슬라이드 스캐닝 시스템의 작업 흐름을 관리하는 제어 프로세스를 위한 시스템, 방법 및 비 일시적 컴퓨터 독출 가능 매체가 개시된다. 일 실시예에서, 개시된 슬라이드 스캐닝 시스템은 대규모 임상 조직학 실험실을 위해 설계된 높은 처리량의 전체 슬라이드 이미징 스캐너(whole slide imaging scanner)이다. 여기에 설명된 바와 같이, 슬라이드 스캐닝 시스템은, 개발, 제조, 기술 지원 및 문제 해결을 위한 작업뿐만 아니라, 표준 작업을 완료하는 것을 포함하여 수명 주기 동안 다양한 소프트웨어 모듈과 상호 작용할 수 있다.
본 발명의 설명을 읽음으로써, 다양한 대안의 실시예 및 대안의 애플리케이션에서 본 발명을 구현하는 방법이 당업자에게 명백 할 것이다. 그러나, 본 발명의 다양한 실시예가 여기에 설명될 것이지만, 이들 실시예는 단지 예시적으로 그리고 예를 들어 들어 제시된 것이며, 제한적인 것이 아님을 이해해야 한다. 따라서, 다양한 실시예에 대한 상세한 설명은 첨부된 청구 범위에 기재된 바와 같이 본 발명의 범위 또는 폭을 제한하는 것으로 해석되어서는 아니된다.
1. 스캐닝 시스템의 예
1.1. 개관
도 1a 는 여기에 설명된 다양한 실시예들과 관련하여 사용될 수 있는 예시적인 프로세서 가능 슬라이드 스캐닝 시스템(100)을 도시하는 블록 다이아그램이다. 스캐닝 시스템(100)의 대안의 형태들은 당업자가 이해하는 바와 같이 사용될 수 있다. 도시된 실시예에서, 스캐닝 시스템(100)은 디지털 이미지 장치(digital imaging device)로서 제시되는데, 이것은 하나 이상의 프로세서(104), 하나 이상의 메모리(106), 하나 이상의 움직임 콘트롤러(motion controller, 108), 하나 이상의 인터페이스 시스템(110), 하나 이상의 샘플(116)을 가진 하나 이상의 유리 슬라이드(glass slide, 114)를 각각 지지하는 하나 이상의 가동 스테이지(movable stage, 112), 샘플(116)을 조명하는 하나 이상의 조명 시스템(118), 광축(optical axis)을 따라서 이동하는 광학적 경로(122)를 각각 형성하는 하나 이상의 대물 렌즈(120), 하나 이상의 대물 렌즈 위치 선정기(objective lens positioner, 124), (예를 들어, 형광 스캐닝(fluorescent scanning) 실시예에 포함된) 하나 이상의 광학적인 에피-일루미네이션 시스템(epi-illumination system, 126), 하나 이상의 포커싱 광학부(focusing optics,128), 하나 이상의 라인-스캔 카메라(line-scan camera, 130), 및/또는 하나 이상의 영역 스캔 카메라(area scan camera, 132)로서, 각각 샘플(116) 및/또는 유리 슬라이드(114)상에 분리된 시야(field of view, 134)를 형성하는 영역 스캔 카메라(132)를 포함한다. 스캐닝 시스템(100)의 다양한 요소들은 하나 이상의 통신 버스(102)를 통해 통신되게 결합된다. 스캐닝 시스템(100)의 다양한 요소들은 각각 복수로 있을지라도, 적절한 정보를 전달하는데 복수로 설명될 필요가 있을 때를 제외하고, 상기 요소들은 단수로 설명될 것이다.
프로세서(104)는 예를 들어 중앙 프로세싱 유닛(CPU) 및 명령을 병렬로 처리할 수 있는 분리된 그래픽 프로세싱 유닛(GPU) 또는 명령을 병렬로 처리할 수 있는 멀티코어 프로세서(multicore processor)를 포함할 수 있다. 이미지 프로세싱과 같은, 특정의 기능들을 수행하거나 또는 특정의 구성부들을 제어하도록 추가적인 분리된 프로세서들도 제공될 수 있다. 예를 들어, 추가적인 프로세서들은, 데이터 입력을 관리하는 보조 프로세서, 부동 소수점 수학적 작동(floating point mathematical operation)을 수행하는 보조 프로세서, (예를 들어, 디지털 신호 프로세서와 같은) 신호 프로세싱 알고리듬의 신속한 수행에 적절한 구조(architecture)를 가지는 특별 목적의 프로세서, (예를 들어, 백-엔드 프로세서(back-end processor)와 같은) 주 프로세에 종속된 슬레이브 프로세서(slave processor), 라인 스캔 카메라(130), 스테이지(112), 대물 렌즈(120) 및/또는 디스플레이(예를 들어, 스캐닝 시스템(100)과 통합된 터치 패널 디스플레이를 포함하는 콘솔(console))을 제어하는 추가적인 프로세서를 포함한다. 그러한 추가적인 프로세서들은 분리된 구분 프로세서들일 수 있거나, 또는 단일 프로세서에 통합될 수 있다.
메모리(106)는 프로세서(104)에 의해 수행될 수 있는 프로그램들을 위한 명령 및 데이터의 저장을 제공한다. 메모리(106)는 데이터 및 명령을 저장하는 하나 이상의 휘발성 및/또는 비휘발성 컴퓨터 독출 가능 저장 매체를 포함할 수 있다. 이러한 매체들은 예를 들어, 랜덤 액세스 메모리(RAM), 리이드 온리 메모리(ROM), 하드 디스크 드라이브, 제거 가능 저장 드라이브(플래쉬 메모리 포함), 및/또는 유사한 것을 포함할 수 있다. 프로세서(104)는 메모리(106)에 저장된 명령을 수행하도록 구성되고, 그리고 스캐닝 시스템(100)의 전체적인 기능을 수행하도록 스캐닝 시스템(100)의 다양한 요소들과 통신 버스(102)를 통해 통신하도록 구성된다.
통신 버스(102)는 아날로그 전기 신호 및/또는 디지털 데이터를 전달하도록 구성될 수 있다. 따라서, 통신 버스(102)를 통한, 프로세서(104), 움직임 콘트롤러(108) 및/또는 인터페이스 시스템(110)으로부터의 통신은 전기 신호 및 디지털 데이터 양쪽을 포함할 수 있다. 프로세서(104), 움직임 콘트롤러(108) 및/또는 인터페이스 시스템(110)은 무선 통신 링크를 통하여 스캐닝 시스템(100)의 다양한 요소들중 하나 이상과 통신하도록 구성될 수도 있다.
움직임 제어 시스템(108)은 (예를 들어 X-Y 평면내에서) 스테이지(112)의 X, Y 및/또는 Z 움직임, (예를 들어, 대물 렌즈 위치 선정기(124)를 통하여, X-Y 평면에 직각인Z 축을 따라서) 대물 렌즈(120)의 X, Y 및/또는 Z 움직임, 여기의 다른 곳에서 설명될 캐러셀(carousel)의 회전 움직임, 여기의 다른 곳에서 설명된 푸쉬/풀 조립체(push/pull assembly)의 측방향 움직임 및/또는 스캐닝 시스템(100)의 그 어떤 다른 움직임 요소를 정확하게 제어하고 조정(coordinate)하도록 구성된다. 예를 들어, 에피-일루미네이션 시스템(126)을 포함하는 형광 스캐닝 실시예에서, 움직임 제어 시스템(108)은 에피-일루미네이션 시스템(epi-illumination system, 126)에 있는 광학 필터 및/또는 그와 유사한 것의 움직임을 조정하도록 구성될 수 있다.
인터페이스 시스템(110)은 스캐닝 시스템(100)이 다른 시스템 및 인간 작업자들과 인터페이스하는 것을 허용한다. 예를 들어, 인터페이스 시스템(110)은 콘솔(예를 들어, 터치 패널 디스플레이)을 구비할 수 있어서 그래피칼 유저 인터페이스(graphical user interface)를 통하여 작업자에게 직접적으로 정보를 제공하고 그리고/또는 터치 센서를 통하여 작업자로부터 직접적인 입력을 허용한다. 인터페이스 시스템(110)은 스캐닝 시스템(100)과, 상기 스캐닝 시스템(100)에 직접적으로 연결된 하나 이상의 외부 장치들(예를 들어, 프린터, 제거 가능 저장 매체 등) 및/또는 예를 들어, 하나 이상의 네트워크를 통해 상기 스캐닝 시스템(100)과 간접적으로 연결된 하나 이상의 외부 장치들(예를 들어, 이미지 저장 시스템. 스캐너 어드미니스트레이션 매니저(Scanner Administration Manager, SAM) 서버 및/또는 다른 어드미니스트레이션 서버(administrative server), 오프레이터 스테이션, 유저 스테이션 등) 사이에서 통신 및 데이터 전달을 용이하게 하도록 구성될 수도 있다.
조명 시스템(118)은 샘플(116)의 적어도 일부를 조명하도록 구성된다. 조명 시스템(118)은 예를 들어 하나 이상의 광원들 및 조명 광학부(illumination optics)를 포함할 수 있다. 광원(들)은 광 출력을 최대화시키도록 오목한 반사 미러를 가진 가변 강도의 할로겐 광원 및 열을 억제하는 KG-1 필터를 포함할 수 있다. 광원(들)은 그 어떤 유형의 아크 램프, 레이저 또는 다른 광원을 포함할 수 있다. 일 실시예에서, 조명 시스템(118)은 샘플(16)을 트랜스미션 모드(transmission mode)에서 조명함으로써, 라인-스캔 카메라(130) 및/또는 영역-스캔 카메라(132)는 샘플(116)을 통해 송신된 광학 에너지를 감지한다. 대안으로서 또는 추가적으로, 조명 시스템(118)은 반사 모드에서 샘플(116)을 조명하도록 구성될 수 있어서, 라인 스캔 카메라(130) 및/또는 영역 스캔 카메라(132)는 샘플(116)로부터 반사된 광학 에너지를 감지한다. 조명 시스템(118)은 광학 마이크로스코피(optical microscopy)의 그 어떤 공지된 모드 샘플(116)의 조사(심문)에 있는지 구성될 수 있다.
일 실시예에서, 스캐닝 시스템(100)은 형광 스캐닝을 위해 스캐닝 시스템(100)을 최적화하기위한 에피 일루미네이션 시스템(126)을 포함한다. 만약 형광 스캐닝이 스캐닝 시스템(100)에 의해 지원되지 않는다면, 에피 일루미네이션 시스템(126)은 생략될 수 있음을 이해해야한다. 형광 스캐닝은 특정 파장(즉, 여기(excitation))에서 빛을 흡수할 수 있는 광자 민감성 분자(photon sensitive molecules)인 형광 분자를 포함하는 샘플(116)의 스캐닝이다. 이러한 광자에 민감성이 있는 분자는 또한 더 높은 파장(즉, 에미션(emission))에서 빛을 조사한다. 이러한 광 발광 현상의 효율이 매우 낮기 때문에, 조사되는 빛의 양은 종종 매우 낮다. 이러한 적은 양의 조사된 광은 전형적으로 샘플(116)을 스캐닝하고 디지털화하기 위한 종래의 기술(예를 들어, 투과 모드 현미경(transmission-mode microscopy))을 저해한다.
유리하게는, 형광 스캐닝을 이용하는 스캐닝 시스템(100)의 실시예에서, 다중 선형 센서 어레이(예를 들어, TDI (time-delay-integration) 라인-스캔 카메라)를 포함하는 라인-스캔 카메라(130)의 사용은 라인 스캔 카메라(130)의 복수의 선형 센서 어레이 각각에 샘플(116)의 동일한 영역을 노출시킴으로써 라인 스캔 카메라(130)의 광에 대한 감도를 증가시킨다. 이것은 낮은 레벨의 조사된 광으로 아주 적은 형광 샘플(faint fluorescent sample)을 스캔할 때 특히 유용한다. 따라서, 형광 스캐닝 실시예에서, 라인 스캔 카메라(130)는 바람직하게는 단색 TDI 라인 스캔 카메라(monochrome TDI line-scan camera)이다. 단색 이미지는 샘플(116)상에 존재하는 다양한 채널로부터의 실제 신호를 보다 정확하게 표현하기 때문에 형광 현미경 검사(fluorescent microscopy)에서 이상적이다. 당업자에 의해 이해되는 바와 같이, 형광 샘플은 상이한 파장들에서 광을 조사하는 다중 형광 염료로 표시될 수 있으며, 이것은 또한 "채널"로서 지칭되기도 한다.
또한, 다양한 형광 샘플의 로우 엔드 및 하이 엔드 신호 레벨(low-end and high-end signal levels)은 라인 스캔 카메라(130)가 감지하는 넓은 스펙트럼의 파장을 나타내기 때문에, 라인 스캔 카메라(130)가 감지할 수 있는 로우 엔드 및 하이 엔드 신호 레벨이 마찬가지로 광범위한 것이 소망스럽다. 따라서, 형광 스캐닝 실시예에서, 라인 스캔 카메라(130)는 단색 10 비트 64 리니어 어레이 TDI 라인 스캔 카메라(monochrome 10-bit 64-linear-array TDI line-scan camera)를 포함할 수있다. 라인-스캔 카메라(130)에 대한 다양한 비트 깊이(bit depth)들이 이러한 실시예와 함께 사용되도록 채용될 수 있다는 점에 주목해야한다.
가동 스테이지(112)는 프로세서(104) 또는 모션 콘트롤러(108)의 제어하에 정확한 X-Y 움직임을 위해 구성된다. 가동 스테이지(112)는 또한 프로세서(104) 또는 모션 콘트롤러(108)의 제어하에 Z 움직임을 위해 구성될 수 있다. 가동 스테이지(112)는 라인 스캔 카메라(130) 및/또는 영역 스캔 카메라(132)에 의한 이미지 데이터 캡처 동안에 소망의 위치에 샘플(116)을 위치시키도록 구성된다. 가동 스테이지(112)는 또한 스캐닝 방향에서 샘플(116)을 실질적으로 일정한 속도로 가속하고, 다음에 라인 스캔 카메라(130)에 의한 이미지 데이터 캡처 동안 실질적으로 일정한 속도를 유지하도록 구성된다. 일 실시예에서, 스캐닝 시스템(100)은 가동 스테이지(112)상에 샘플(116)의 위치를 두는 것을 보조하도록, 높은 정밀도를 가지고 긴밀하게 조정되는 X-Y 그리드(grid)를 사용할 수 있다. 일 실시예에서, 가동 스테이지(112)는 X 및 Y 축 모두에서 사용되는 고정밀도의 인코더(encoders)를 가지는 선형 모터 기반 X-Y 스테이지이다. 예를 들어, 매우 정밀한 나노미터 인코더는 스캐닝 방향의 축, 스캐닝 방향에 직각인 방향인 축 및, 스캐닝 방향과 동일한 평면상에서 사용될 수 있다. 스테이지(112)는 또한 샘플(116)이 배치되는 유리 슬라이드(114)를지지하도록 구성된다.
샘플(116)은 광학 마이크로스코피로 조사할 수 있는 그 어떤 것도 될 수 있다. 예를 들어, 유리 마이크로스코프 슬라이드(114)는 조직 및 세포, 염색체, DNA(deoxyribonucleic acid), 단백질, 혈액, 골수, 소변, 박테리아, 비드(beads), 생검 물질, 또는 사체(dead)이거나 또는 살아 있는, 염색되거나 또는 염색되지 않은, 라벨(labeled)이 붙여지거나 또는 붙여지지 않은 그 어떤 다른 유형의 생물학적 물질 또는 실체를 포함하는 표본을 위한 관찰 기판(viewing substrate)으로서 사용된다. 샘플(116)은 또한 상보적 DNA(cDNA) 또는 리보핵산(RNA)과 같은 그 어떤 유형의 DNA 또는 DNA 관련 물질의 어레이 또는 그 어떤 유형의 슬라이드 또는 다른 기판상에 침착된 단백질일 수 있으며, 마이크로어레이(microarray)로서 일반적으로 알려진 그 어떤 샘플 및 모든 샘플을 포함한다. 샘플(116)은 마이크로타이터 플레이트(microtiter plate)(예 : 96 웰(well) 플레이트)일 수 있다. 샘플(116)의 다른 예는 집적 회로 기판, 전기 영동 레코드, 페트리 디쉬(petri dish), 필름, 반도체 물질, 포렌식 물질(forensic material) 및 기계 가공된 부분(machined part)을 포함한다.
대물 렌즈(120)는 대물 위치 선정기(124)상에 장착되는데, 이것은 일 실시예에서, 대물 렌즈(120)에 의해 형성된 광축을 따라 대물 렌즈(120)를 이동시키기 위해 매우 정밀한 선형 모터를 사용한다. 예를 들어, 대물 렌즈 위치 선정기(124)의 선형 모터는 50 나노미터 인코더를 포함할 수 있다. X, Y 및/또는 Z 축에서 스테이지(112) 및 대물 렌즈(120)의 상대적 위치는, 스캐닝 시스템(100)의 전체적인 동작을 위한 컴퓨터 실행 가능한 프로그래밍된 단계를 포함하는, 정보 및 명령 저장을 위한 메모리(106)를 사용하는 프로세서(104)의 제어하에, 움직임 콘트롤러(108)를 사용하는 폐쇄 루프 방식으로 조정 및 제어된다.
일 실시예에서, 대물 렌즈(120)는 투과 모드 일루미네이션 마이크로스코피(transmission-mode illumination microscopy), 반사 모드 일루미네이션 마이크로스코피(reflection-mode illumination microscopy) 및/또는 에피 일루미네이션 모드 형광 마이크로스코피(epi-illumination-mode fluorescence microscopy )에 적합한 평면 아포크로마틱(plan apochromatic)("APO") 무한 보정 대물 렌즈이다(예 : Olympus 40X, 0.75NA 또는 20X, 0.75 NA). 유리하게는, 대물 렌즈(120)는 색수차 및 구면 수차를 보정할 수 있다. 대물 렌즈(120)가 무한 보정되기 때문에, 포커싱 광학부(focusing optics, 128)는 대물 렌즈(120)를 통과하는 광 비임이 집속된 광 비임(collimated light beam)이 되는 대물 렌즈(120) 위의 광 경로(122)에 배치될 수 있다. 포커싱 광학부(128)는 대물 렌즈(120)에 의해 캡처된 광학 신호를 라인 스캔 카메라(130) 및/또는 영역 스캔 카메라(132)의 광 응덥 요소(light responsive element)에 초점을 맞추고, 필터, 배율 변경 렌즈(magnification changer lenses) 및/또는 유사한 것과 같은 광학 요소들을 포함할 수 있다. 포커싱 광학부(128)와 조합된 대물 렌즈(120)는 스캐닝 시스템(100)에 대한 총 배율을 제공한다. 일 실시예에서, 포커싱 광학부(128)는 튜브 렌즈 및, 선택적인 2X 배율 변경기(magnification changer)를 포함할 수 있다. 유리하게는, 2X 배율 변경기는 네이티브 20X 대물 렌즈(native 20X objective lens, 120)가 40X 배율로 샘플(116)을 스캔할 수 있게 한다.
라인-스캔 카메라(130)는 화소(142)("픽셀(pixels")의 적어도 하나의 선형 어레이(linear array)를 포함한다. 라인 스캔 카메라(130)는 단색 또는 컬러일 수있다. 컬러 라인 스캔 카메라는 일반적으로 적어도 3 개의 선형 어레이를 가지는 반면, 단색 라인 스캔 카메라(monochrome line-scan cameras)는 단일 선형 어레이 또는 복수의 선형 어레이를 가질 수 있다. 카메라의 일부로 패키징되거나 이미징 전자 모듈(imaging electronic module)에 맞춤 통합되거나 간에, 모든 유형의 단수 또는 복수 선형 어레이도 사용할 수 있다. 예를 들어, 3 개의 선형 어레이( "레드-그린-블루" 또는 "RGB") 컬러 라인 스캔 카메라 또는 96 개의 선형 어레이 모노크롬 TD1도 사용될 수 있다. TD1 라인 스캔 카메라는 통상적으로 이전에 촬영된 표본 영역으로부터의 강도 데이터를 합산함으로써 출력 신호에서의 실질적으로 우수한 신호 대 잡음비(sgnal-to-noise ratio, "SNR")를 제공하여, 통합 스테이지(integration stages)의 수의 제곱근에 비례하는 SNR에서의 증가를 낳는다. TDI 라인 스캔 카메라는 다수의 선형 어레이로 구성된다. 예를 들어, TDI 라인 스캔 카메라는 24, 32, 48, 64, 96 또는 그 이상의 선형 어레이를 가지고 사용될 수 있다. 스캐닝 시스템(100)은 또한 다양한 형식으로 제조된 선형 어레이를 지원하며, 일부는 512 픽셀, 일부는 1,024 픽셀, 다른 일부는 4,096 만큼의 픽셀을 가지는 것을 포함한다. 유사하게, 다양한 픽셀 크기를 갖는 선형 어레이가 또한 스캐닝 시스템(100)에서 사용될 수 있다. 임의 유형의 라인 스캔 카메라(130)를 선택하기 위한 중요한 요건은 스테이지(112)의 움직임이 라인 스캔 카메라(130)의 라인 속도와 동기화될 수 있어서, 스테이지(112)는 샘플(116)의 디지털 이미지 캡쳐 동안에 라인 스캔 카메라(130)에 대하여 움직일 수 있다는 것이다.
일 실시예에서, 라인 스캔 카메라(130)에 의해 생성된 이미지 데이터는 메모리(106)의 일부에 저장되고 프로세서(104)에 의해 처리되어 샘플(116)의 적어도 일부의 인접한 디지털 이미지를 생성한다. 인접한 디지털 이미지는 프로세서(104)에 의해 추가로 처리될 수 있고, 처리된 인접한 디지털 이미지는 또한 메모리(106)에 저장될 수 있다.
2 개 이상의 라인 스캔 카메라(130)가 있는 실시예에서, 라인 스캔 카메라(130)들중 적어도 하나는, 이미지 센서로서 기능하도록 구성된 다른 라인 스캔 카메라(130)의 적어도 하나와 조합되어 작동하는 초점 센서(focusing sensor)로서 기능하도록 구성될 수 있다. 포커싱 센서는 이미징 센서와 동일한 광학 축상에 논리적으로(logically) 위치될 수 있거나, 또는 포커싱 센서는 스캐닝 시스템(100)의 스캐닝 방향에 대해 이미징 센서의 앞에 또는 뒤에 논리적으로 위치될 수 있다. 포커싱 센서로서 기능하는 적어도 하나의 라인 스캔 카메라(130)를 가진 그러한 실시예에서, 포커싱 센서에 의해 생성된 이미지 데이터는 메모리(106)의 일부에 저장되고 프로세서(104)에 의해 처리되어 초점 정보를 생성하고, 스캐닝 시스템(100)이 샘플(100)과 대물 렌즈(120) 사이의 상대적인 거리를 조정할 수 있게 하여, 스캐닝하는 동안 샘플(116)에 초점을 유지한다. 추가로, 일 실시예에서, 포커싱 센서로서 기능하는 적어도 하나의 라인-스캔 카메라(130)는 포커싱 센서의 복수의 개별 픽셀(142) 각각이 광학 경로(122)를 따라 상이한 논리적 높이에 위치하도록 지향될 수 있다.
작동시, 스캐닝 시스템(100)의 다양한 구성 요소 및 메모리(106)에 저장된 프로그래밍된 모듈은 유리 슬라이드(114)에 배치된 샘플(116)의 자동 스캐닝 및 디지털화(digitizing)를 가능하게 한다. 유리 슬라이드(114)는 샘플(116)을 스캐닝하기 위해 스캐닝 시스템(100)의 가동 스테이지(112)상에 안정되게 배치된다. 프로세서(104)의 제어하에, 가동 스테이지(112)는 라인 스캔 카메라(130)에 의한 감지를 위해 샘플(116)을 실질적으로 일정한 속도로 가속시키며, 여기에서 스테이지(112)의 속도는 라인 스캔 카메라(130)의 라인 속도(line rate)와 동기화된다. 이미지 데이터의 스트라이프(stripe)를 스캐닝 한 후에, 가동 스테이지(112)는 감속하고 샘플(116)을 실질적으로 완전한 정지 상태로 만든다. 그 다음, 가동 스테이지(112)는 이미지 데이터의 차후 스트라이프(예를 들어, 인접한 스트라이프)의 스캐닝을 위해 샘플(116)을 위치시키도록 스캐닝 방향에 직각으로 움직인다. 추가 스트라이프는 샘플(116)의 전체 부분 또는 전체 샘플(116)이 스캔될 때까지 차후에 스캔된다.
예를 들어, 샘플(116)의 디지털 스캐닝 동안, 샘플(116)의 인접한 디지털 이미지는 이미지 스트라이프(image stripe)를 형성하도록 함께 조합되는 복수의 인접한 시야 필드(fields of view)로서 얻어진다. 복수의 인접한 이미지 스트라이프는 유사하게 함께 조합되어 일부 또는 전체 샘플(116)의 인접한 디지털 이미지를 형성한다. 샘플(116)의 스캐닝은 수직 이미지 스트라이프 또는 수평 이미지 스트라이프를 획득하는 것을 포함할 수 있다. 샘플(116)의 스캐닝은 위에서 아래로, 아래에서 위로 또는 양쪽에서(즉, 양방향)일 수 있으며, 샘플(116)의 그 어떤 지점에서도 시작할 수 있다. 대안으로서, 샘플(116)의 스캐닝은 왼쪽에서 오른쪽으로, 오른쪽에서 왼쪽으로 또는 양쪽으로(즉, 양방향) 이루어질 수 있으며 샘플(116)의 어느 지점에서나 시작할 수 있다. 이미지 스트라이프들은 인접하거나 근접하여 획득할 필요는 없다. 또한, 샘플(116)의 결과적인 이미지는 전체 샘플(116)의 이미지 또는 오직 샘플(116)의 일부일 수 있다.
일 실시예에서, 컴퓨터 실행 가능 명령어(예를 들어, 프로그램된 모듈 및 소프트웨어)는 메모리(106)에 저장되고, 실행될 때 스캐닝 시스템(100)이 여기에 설명된 다양한 기능들(예를 들어, 그래픽 사용자 인터페이스를 표시하고, 스캐닝 시스템(100)의 구성 요소들의 제어 및 실행 등)을 수행할 수 있게 한다. 본원의 설명에서, "컴퓨터 독출 가능 저장 매체"라는 용어는 프로세서(104)에 의한 실행을 위해 스캐닝 시스템(100)에 컴퓨터 실행 가능 명령을 제공하고 저장하는데 사용된 그 어떠한 매체라도 지칭하도록 사용된다. 이러한 매체의 예는 메모리(106) 및 스캐닝 시스템(100)과 직접적으로 (예를 들어, 범용 직렬 버스(USB), 무선 통신 프로토콜 등을 통해) 또는 간접적으로 (예를 들어, 유선 및/또는 무선 네트워크를 통해) 통신 가능하게 결합된 임의의 제거 가능하거나 또는 외부의 저장 매체(미도시)를 포함한다.
도 1b 는 전하 결합 장치(charge coupled device, "CCD") 어레이로서 구현될 수 있는, 단일의 선형 어레이(140)를 가지는 라인-스캔 카메라(130)를 도시한다. 단일 선형 어레이(140)는 복수의 개별 픽셀(142)을 포함한다. 도시된 실시예에서, 단일 선형 어레이(140)는 4,096 개의 픽셀(142)을 가진다. 대안의 실시예에서, 선형 어레이(140)는 더 많거나 더 적은 픽셀을 가질 수 있다. 예를 들어, 선형 어레이들의 공통적인 포맷들은 512, 1,024 및 4,096 픽셀을 포함한다. 픽셀(142)들은 선형 어레이(140)에 대한 시야 필드(field of view, 134)를 정의하기 위해 선형 방식으로 배치된다. 시야 필드(134)의 크기는 스캐닝 시스템(100)의 배율에 따라 변한다.
도 1c 는 각각 CCD 어레이로서 구현될 수 있는 3 개의 선형 어레이(140)를 가진 라인-스캔 카메라(130)를 도시한다. 3 개의 선형 어레이(140)는 컬러 어레이(color array, 150)를 형성하도록 조합된다. 일 실시예에서, 컬러 어레이(150)에 있는 각각의 개별 선형 어레이는 예를 들어, 적색, 녹색 또는 청색을 포함하는 상이한 컬러 강도(color intensity)를 검출한다. 컬러 어레이(150)의 각각의 개별 선형 어레이(140)로부터의 컬러 이미지 데이터는 컬러 이미지 데이터의 단일 시야 필드(134)를 형성하도록 조합된다.
도 1d 는 각각이 CCD 어레이로 구현될 수 있는 복수의 선형 어레이(140)를 가진 라인-스캔 카메라(130)를 도시한다. 복수의 선형 어레이(140)는 TDI 어레이(160)를 형성하도록 조합된다. 유리하게는, TDI 라인 스캔 카메라는 이전에 촬상된된 표본 영역으로부터의 강도 데이터를 합산하여 출력 신호에서 실질적으로 우수한 SNR을 제공할 수 있어서, 선형 어레이(140)의 수의 제곱근에 비례하는 SNR 에서의 증가를 산출한다(통합 단계(integration stages)라고도 칭함). TDI 라인-스캔 카메라는 선형 어레이(140)들의 더많은 다양성을 포함할 수있다. 예를 들어, TDI 라인 스캔 카메라의 공통 포맷들은 24, 32, 48, 64, 96, 120 및 훨씬 더 많은 선형 어레이(140)를 포함한다.
1.2.슬라이드 랙(slided rack)을 위한 캐러셀(carousel)
일 실시예에서, 스캐닝 시스템(100)은 복수의 슬라이드 랙을 유지하고 스캐닝 시스템(100)의 노출된 부분으로부터 스캐닝 시스템(100)의 내부 부분으로 슬라이드 랙을 회전시키도록 구성된 캐러셀(carousel)을 포함한다. 각각의 슬라이드 랙은 복수의 유리 슬라이드(114)를 유지하도록 구성된다. 캐러셀은 상이한 크기의 슬라이드 랙을 유지하도록 구성될 수 있으며, 이것은 상이한 수의 유리 슬라이드(114) 및/또는 상이한 크기의 유리 슬라이드(114)(예를 들어, 25mm x 75mm or "1x3" slides, 및 50mm x 75mm 또는r "2x3" 슬라이드)를 유지하는 슬라이드 랙을 포함한다.
도 2a 및 도 2b 는 일 실시예에 따른 예시적인 캐러셀(200)의 평면도 및 사시도를 각각 도시한다. 도시된 바와 같이, 캐러셀(200)은 고정 지점 둘레에서 캐러셀(200)을 회전시키는 캐러셀 벨트(210)와 맞물릴 수 있다. 일 실시예에서, 캐러셀 벨트(210)는 캐러셀(200)의 베이스(202)의 원주 둘레에서 벨트 요부(belt recess, 204) 내에 위치될 수 있어서, 캐러셀 벨트(210)는 베이스(202)의 원주 둘레로 연장된다. 또한, 캐러셀 벨트(210)는 캐러셀 모터(미도시)에 의해 회전되는 적어도 하나의 회전자(212) 둘레에서 연장될 수 있다. 캐러셀 모터(carousel motor)는 2 개의 방향(시계 방향 및 시계 반대 방향)들 각각에서 캐러셀 모터를 회전(spin)시키는 움직임 콘트롤러(108)에 의해 (예를 들어, 프로세서(104)의 제어하에) 제어될 수 있어서, 회전자(212)를 회전시키며, 이것은 다시 캐러셀 벨트(210)를 회전시키고, 그에 의해 캐러셀(200)을 선택된 방향으로 회전시킨다. 대안의 실시예에서, 캐러셀(200)은 벨트 또는 직접 기어링(direct gearing) 또는 직접 구동과 같은 다른 메커니즘을 사용하는 구동 시스템을 가질 수 있다. 유리하게는, 구동 시스템은 캐러셀(200)의 움직임을 구현하기 위해 다양한 유형의 베어링 시스템과 쌍(pair)을 이룰 수 있다.
일 실시예에서, 캐러셀(200)은 베이스(202)의 상부 표면으로부터 위쪽으로 연장되는 복수의 랙 스페이서(rack spacer, 206)를 포함한다. 인접한 랙 스페이서(206)의 각 쌍은 랙 슬롯(rack slot, 208)을 형성한다. 각각의 랙 슬롯(208)은 슬라이드 랙(slide rack, 220)을 유지하도록 구성되고, 복수의 상이한 크기 및/또는 유형의 슬라이드 랙(220)(예를 들어, 상이한 제조업체에 의해 제조됨) 각각을 유지하도록 구성될 수 있다. 예를 들어, 슬라이드 랙(220)은 상이한 높이 및/또는 폭을 가질 수 있고, 각각의 랙 슬롯(208)은 이러한 모든 상이한 높이 및/또는 폭을 가지는 슬라이드 랙(220)을 유지하는 크기일 수 있다. 또한, 각각의 랙 슬롯(208)은 랙 슬롯(208)이 슬라이드 랙(220)에 의해 점유되는지 여부를 결정하도록 위치된 검출기(예를 들어, 광학 센서)와 연관되거나 연관될 수 있다. 일 실시예에서, 캐러셀(200)이 인덱싱된 위치에 있을 때, 캐러셀(200)의 노출된 부분에 있는 각각의 랙 슬롯(208)은 적어도 하나의 검출기와 정렬되어, 각각의 노출된 랙 슬롯(208)으로부터 그 어떤 슬라이드 랙(220)의 삽입 또는 제거라도 검출한다. 검출기의 출력에 기초하여, 랙 슬롯(208)이 캐러셀(200)의 노출 된 부분에 있는 동안, 스캐닝 시스템(100)의 프로세서(104)는, 랙 슬롯(208)에 대하여, 랙 슬롯(208)이 슬라이드 랙(220)에 의해 점유되는지 여부를 결정할 수 있다.
도 2c 및 도 2d 는 일 실시예에 따른 복수의 슬라이드 랙(220)이 로딩된 예시적인 캐러셀(200)의 평면도 및 사시도를 각각 도시한다. 도시된 바와 같이, 랙 슬롯(208A)은 그 어떤 슬라이드 랙(220)에 의해서도 점유되지 않는 반면, 랙 슬롯(208B)은 슬라이드 랙(220)에 의해 점유된다. 따라서, 프로세서(104)는 각각의 랙 슬롯(208) 내에 정렬된 검출기를 통해 랙 슬롯(208A)이 슬라이드 랙(220)에 의해 점유되지 않는 것을 판단하고 랙 슬롯(208B)이 슬라이드 랙(220)에 의해 점유된다고 판단할 것이다. 또한, 도시된 바와 같이, 슬라이드 랙(220)은 크기가 다를 수 있다. 예를 들어, 슬라이드 랙(220A)은 슬라이드 랙(220B)보다 크고 더 많은 유리 슬라이드(114)를 수용한다.
도 2e 및 도 2f 는 실시예에 따른 예시적인 슬라이드 랙(220A)의 측면도 및 예시적인 슬라이드 랙(220B)의 사시도를 각각 도시한다. 슬라이드 랙(220A)은 더 크고 30 개의 유리 슬라이드(114)를 유지하는 반면, 슬라이드 랙(220B)은 더 짧고 20 개의 유리 슬라이드(114)를 유지한다. 슬라이드 랙(220A 및 220B)은 다른 제조업체에서 제조할 수 있다. 그러나, 각각의 랙 슬롯(208)은 슬라이드 랙(220A 및 220B) 모두를 수용하도록 구성된다.
전술한 바와 같이, 일 실시예에서, 캐러셀(200)의 일부는 스캐닝 시스템(100)의 외부에 노출되거나 노출될 수 있다. 즉, 특정 개수의 인접한 랙 슬롯(208)은 항상 노출된 위치에 있을 수 있다. 예를 들어, 15 개의 랙 슬롯(208)의 캐러셀에서, 6 개의 랙 슬롯(208)이 노출될 수 있는 반면에, 나머지 9 개의 랙 슬롯(208)은 스캐닝 시스템(100)의 내부에서 노출되지 않는다. 캐러셀(200)은 임의의 주어진 시간에 인접한 랙 슬롯(208)의 어느 서브 세트(subset)가 노출되고 인접한 랙 슬롯(208)의 어느 서브 세트가 노출되지 않는지를 변경하도록 회전할 수 있다는 점이 이해되어야 한다.
일 실시예에서, 로딩(loading)을 용이하게하기 위해, 스캐닝 시스템(100)의 프로세서(104)는 노출되는 비워 있는 랙 슬롯(208)의 수를 최대화하도록 캐러셀(200)을 자동으로 제어한다. 예를 들어, 프로세서(104)는, 각각의 랙 슬롯(208)에 있는 검출기 또는 노출된 랙 슬롯(208)과 정렬된 검출기를 통해, 슬라이드 랙(220)에 의해 어느 랙 슬롯(208)이 점유되는지 판단할 수 있다. 그 다음, 프로세서(104)는 비어 있는 랙 슬롯(208)의 최대 인접한 세그먼트를 식별할 수 있고, 스캐닝 시스템(100)의 노출된 부분 내에서 가능한 한 많은 비어 있는 랙 슬롯(208)을 최대의 인접한 세그먼트 안에 위치시키도록 캐러셀(200)을 회전시킬 수 있다.
1.3. 푸쉬 풀 어셈블리(Push-Pull Assembly)
일 실시예에서, 스캐닝 시스템(100)은 슬라이드 랙(220)으로부터 스테이지(112)로 각각의 유리 슬라이드(114)를 로딩(loading)하고 스테이지(112)로부터 슬라이드 랙(220)으로 각각의 유리 슬라이드(114)를 언로딩(unloading)하도록 구성된 푸쉬/풀 어셈블리(push/pull assembly)를 포함한다. 도 3a 및 도 3b 는 일 실시예에 따른 스캐닝 시스템(100)의 예시적인 푸쉬/풀 어셈블리(300), 슬라이드 랙(220) 및, 스캐닝 스테이지(112)의 사시도를 도시한다. 예시된 실시예에서, 푸쉬/풀 어셈블리(300)는 슬라이드 랙(220)으로 연장 가능한 푸쉬 바아(push bar, 320)를 포함하는 것으로 도시되어 있다. 도시된 푸쉬/풀 어셈블리(300)도 하나 이상의 풀 핑거(312)를 포함하는 개방 단부를 가진 풀 바아(pull bar, 310)를 포함한다. 풀 핑거(들)(312)는 스테이지(112)에서 대응하는 풀 핑거 홈(pull finger groove)(들) 내에서 이동하도록 구성된다.
일 실시예에서, 푸쉬 바아(320) 및 풀 핑거(312)는, 스캐닝되어야 하는 유리 슬라이드(114)를 슬라이드 랙(220)으로부터 밖으로 그리고 스테이지(112)에 있는 슬라이드 요부로 밀도록, 조합되어 작동한다. 유리 슬라이드(114)가 스캐닝된 후에, 푸쉬 바아(320) 및 풀 핑거(312)는 다시 조합되어 작동하여 유리 슬라이드(114)를 스테이지(112)로부터 벗어나게 슬라이드 랙(220)에 있는 빈 슬롯으로 미는데, 상기 빈 슬롯은 스테이지(112)에 있는 슬라이드 요부와 동일한 평면에 있고 슬라이드 요부와 정렬되어 있다. 도 3a 는 유리 슬라이드(114)가 스테이지(112)상에서 완전히 지지될 때 푸쉬/풀 어셈블리(300)를 도시하는 반면에, 도 3b 는 유리 슬라이드(114)가 부분적으로 스테이지(110) 상에 그리고 부분적으로 슬라이드 랙(220)의 슬롯내에 지지될 때(예를 들어, 유리 슬라이드(114)의 로딩 또는 언로딩하는 동안) 푸쉬/풀 어셈블리(300)를 예시한다.
1.4. 비전 처리 장치(Example Vision Processing Unit)의 예
일 실시예에서, 스캐닝 시스템(100)은 운영자가 스캐닝 시스템(100)과 상호 작용하면서 소비할 필요가 있는 시간을 최소화하면서, 처리량 및 이미지 품질을 최대화시킬 목적으로 설계된다. 이러한 목적을 달성하기 위해, 스캐닝 시스템(100)의 정상적인 동작을 제어하기 위한 소프트웨어는 제어 소프트웨어와 외부 인터페이스 소프트웨어의 두 가지 범주로 나뉠 수 있다.
일 실시예에서, 제어 소프트웨어는 스캐닝 시스템(100)의 하드웨어와 직접 상호 작용하는 비전 처리 유닛(vision processing unit; VPU) 내에 포함된다. 제어 소프트웨어는 이미지 획득, 슬라이드 핸들링 및 이미지 생성에 필요한 기능을 포함하는, 스캐닝 시스템(100)의 모든 제어를 담당한다.
도 4 는 일 실시예에 따른 예시적인 VPU(400)를 도시한다. VPU(400)는 컨트롤러(402), 제 1 프레임 그래버(frame grabber, 404), 제 2 프레임 그래버(406), 그래픽 처리 장치(GPU)(408), 하나 이상의 압축 엔진(410), 네트워크 인터페이스(412), 콘솔 인터페이스(414)(예를 들어, 웹 인터페이스), 스캐닝 시스템(100)의 터치 패널 디스플레이(434)에 연결될 수 있는 범용 직렬 버스(USB)(416) 및/또는 고화질 멀티미디어 인터페이스(HDM1), 제 1 직렬 인터페이스(418) 및/또는 제 2 직렬 인터페이스(420)를 포함한다. 예시적이고 비 제한적인 예로서, 제 1 프레임 그래버(404)는 Camera Link 인터페이스를 통해 단색 카메라(430)(예를 들어, Basler Racer raL4096-280km)에 연결된 Teledyne Dalsa ™ Xtium-CL PX4 일 수 있고, 제 2 프레임 그래버(406)는 Camera Link 인터페이스를 통해 컬러 카메라(432)(예 : Dalsa ™ Piranha PC-30-04K80)에 연결된 Dalsa ™ Xtium-CL PX4 일 수 있으며, GPU 408은 Nvidia ™ Quadra P5000 일 수 있으며, 제 1 직렬 인터페이스(418)은 Teknic ™ 스테이지 컨트롤러(436)(예를 들어, 모션 컨트롤러(108) 내의 Teknic ™ 스테이지 컨트롤러)에 통신되게 연결된 고속 스테이지 컨트롤러일 수 있고, 그리고 제 2 직렬 인터페이스(420)는(예를 들어 인터페이스 시스템(110)내에 있는) 입력/출력 보드 콘트롤러(438)에 통신되게 연결된 입력/출력 컨트롤러일 수 있다. 콘트롤러(402) 및 GPU(408)는 프로세서(들)(104)를 포함 할 수 있다는 점이 이해되어야 한다.
1.5. 예시적인 네트워크
외부 애플리케이션 및 프로세스는 VPU(400)에 있는 제어 소프트웨어와 인터페이스하여 정상적인 장치 작동을 지원한다. 일 실시예에서, 스캐닝 시스템(들)(100)은 중앙 집중식 장치 관리(centralized device management)를 이용하는 소프트웨어 아키텍처(software architecture) 내에서 동작한다. 도 5 는 일 실시예에 따른 중앙 집중식 장치 관리를 위한 외부 소프트웨어의 예를 도시한다. 이러한 외부 소프트웨어는 예를 들어 스캐너 관리 관리자(Scanner Administration Manager, SAM) 서버, 디지털 이미징 및 의학 통신(Digital Imaging and Communications in Medicine, DICOM) 서버, 원격 스캐너 테스트 유틸리티(remote scanner test utility,STU) 등을 포함할 수 있다.
일 실시예에서, 각각의 스캐닝 시스템(100)이 기능하기 위해서, SAM 서버(502)에 의해 연결되고 관리되어야 한다. SAM 서버(502)는 다중 스캐닝 시스템(multiple scanning system, 100)이 중앙의 위치에서 구성 및 관리될 수 있게 한다. 유리하게는, 이것은 다중 스캐닝 시스템(100)을 유지할 때 실험실 관리자의 작업을 최소화할 수 있다.
일 실시예에서, SAM 서버(502)는 SAM 기능을 수행하기 위한 SAM 소프트웨어, 스캐너 데이터 및, DICOM 포맷 파일(DICOM formatted files)을 SVS 포맷 파일(SVS formatted files)로 변환하기 위한 변환 소프트웨어를 포함할 수 있다. SVS는 태그 이미지 파일 포맷(Tag Image File Format, TIFF)을 기반으로 하고 Leica Biosystems™ 에 의해 사용되는 파일 포맷이다. 또한, SAM 서버(502)는 (예를 들어, 스캐닝이 이루어진 슬라이드 이미지를 저장하기 위한) 이미지 저장 시스템(504) 및, (예를 들어, 스캔된 슬라이드 이미지에 액세스하고 그것을 관리하기 위한) eSlide Manager™ (eSM) 서버(506)에 통신되게 연결될 수 있다. SAM 서버(502)는 고객 LAN(Local Area Network)(508)을 통해 스캐닝 시스템(들)(100)과 통신한다. 비 제한적인 예로서, 각각의 스캐닝 시스템(100)은 1 기가 바이트(GB) 이더넷을 통해 고객 LAN(208)(예를 들어, SAM 및 DICOM 통신)과 통신 할 수 있고, 고객 LAN(508)은 1-10 GB 이더넷을 통해 SAM 서버(502)(예를 들어, DICOM 및 관리 통신(administrative communications))와 통신할 수 있고, SAM 서버(502)는 1-10 GB 이더넷을 통해 이미지 저장 시스템(504)(예를 들어, 서버 메시지 블록(SMB) 라이트(wirte))과 통신할 수 있으며, SAM 서버(502)는 1 GB 이더넷을 통해 eSM 서버(506)(예를 들어, eSM 서버 통신)와 통신할 수 있다.
1.6. 예시적인 소프트웨어 인터페이스
도 6 은 일 실시예에 따른, 하나의 스캐닝 시스템(100) 내의 VPU(400)의 제어 소프트웨어와 복수의 스캐닝 시스템(100) 각각에 의해 사용될 수 있는 외부 소프트웨어 사이의 인터페이스의 예를 도시한다. 특정 통신 프로토콜이 도 6에 예시되어 있지만, 다른 통신 프로토콜이 사용될 수 있다. 예시된 바와 같이, 4 개의 관련 하드웨어 구성 요소가 있다 : 스캐닝 시스템(100)의 내부 CPU를 포함하는 VPU(400); SAM 소프트웨어, DICOM 서버 및 Mirth ™ 애플리케이션을 실행하는 Microsoft Windows ™ 기반 서버일 수 있는 SAM 서버(502); 이미지 데이터의 장기 저장을 위해 사용되는 네트워크 파일 공유 서버일 수 있는 이미지 저장 시스템(504); 및 Leica Biosystems ™에 의해 eSlide Manager ™ 소프트웨어를 실행하는 Microsoft Windows ™ 기반 서버일 수 있는 eSM 서버(506)가 존재한다.
일 실시예에서, 제어 및 외부 소프트웨어는 시스템 레벨 통신을 위해 다음 메시지 프로토콜을 사용한다:
ICE(Interet Communications Engine) : ZeroC ™의 오픈 소스 원격 프로시저 호출(open-source remote procedure call; RPC) 프레임 워크에서 개발 및 지원하는 바이너리 프로토콜(binary protocol).
DICOM : 의료 영상 관련 데이터의 통신 및 관리에 사용되는 표준 프로토콜.
SOAP(Simple Object Access Protocol)/XML(eXtensible Markup Language) : 웹 서비스 또는 네트워크 애플리케이션에서 일반적으로 사용되는 XML 메시지 포맷을 활용하는 메세지 프로토콜.
Health Level-7(HL7) : 병원의 작업 흐름(workflow)을 지원하기 위해 설계된 표준 메시지 프로토콜로서, 이것은 여러 의료 관리 시스템들 사이에서 전자 건강 정보의 교환 및 통합을 단순화하는 조건들의 포괄적인 세트의 제공을 목표로 한다.
도 6 에 도시된 바와 같이, VPU(400)의 컨트롤러(402)에 의해 사용되는 제어 소프트웨어는, 이미지 프로세서(602)(예를 들어, 획득 된 이미지 데이터 처리 용), 구성 데이터(예: 스캐닝 시스템(100) 구성 용) 및/또는 슬라이드 데이터(예를 들어, 스캐닝 시스템에 의해 획득됨), 하나 이상의 알고리즘(606)(예를 들어, 스캐닝 시스템(100) 내에서 이미지 데이터를 처리하기 위한 것), 이미지 획득 모듈(608)(예를 들어, 스캐닝 시스템(100) 내에서 이미지 데이터를 획득함), 이벤트 및/또는 로그 데이터(610)(예를 들어, 스캐닝 시스템(100)에서 발생하는 이벤트를 기록하기 위한 것임), 스캐너 워크 플로우 모듈(612)(예를 들어, 스캐닝 시스템(100)의 작업 흐름을 관리함) 및, 슬라이드 핸들링 모듈(614) (예를 들어, 스캐닝 시스템(100) 내에서 슬라이드 로딩 및 언로딩을 처리함)을 포함한다. 이미지 프로세서(602)는 ICE 를 통해 다른 제어 소프트웨어와 통신할 수 있다. 또한, 스캐너 워크 플로우 모듈(612) 및 슬라이드 핸들링 모듈(614)은 둘 다 ICE 를 통해 콘솔 인터페이스(console interface, 414)와 통신할 수 있다. 슬라이드 핸들링 모듈(614)은 또한 RS232 직렬 통신을 통해 자동 로더(auto-loader, AL) 펌웨어 -uC(620)와 통신할 수 있다. 콘트롤러(402)에 의해 실행되는 다양한 제어 소프트웨어는 또한 ICE 를 통해 STU 모듈(616)과 통신할 수도 있다.
이미지 프로세서(602)는 DICOM SSL(Secure Socket Layer)을 통해 SAM 서버(602)의 DICOM 서버(622)와 통신할 수 있고, ICE를 통해 콘트롤러(420)의 다른 제어 소프트웨어와 통신할 수 있다. 구성 및/또는 슬라이드 데이터(configuration and/or slide data, 604)는 SOAP-SSL 을 통해 SAM 서버(502)상의 SAM 데이터베이스(628)와 통신할 수있다. 이벤트 및/또는 로그 데이터(Event and/or log data, 610)는 HL7/XML을 통해 SAM 서버(502)상의 Mirth ™ 애플리케이션(들)(632)에 통신될 수있다. STU 모듈(616)은 ICE-SSL 을 통해 STU 사용자 인터페이스(624)와 통신할 수 있다.
SAM 서버(502)에서, DICOM 서버(622)는 SMB3 를 통해 이미지 저장 시스템(504)과 통신할 수 있다. Mirth ™ 애플리케이션(들)(632)은 SOAP를 통해 SAM 데이터베이스(628)와 통신할 수 있고, 또한 SAM 서버(502)상의 로깅 서비스(logging service, 620)와 통신할 수 있다. 또한, STU 사용자 인터페이스(624), SAM 사용자 인터페이스(626) 및 SAM 데이터베이스(628)의 그룹은 SOAP-SSL 을 사용하여 eSM 서버(506)와 통신할 수 있다.
1.7. 인덱싱된 위치(indexed positions)
일 실시예에서, 인덱싱된 위치는 캐러셀(200)의 랙 슬롯(208)이 랙 검출기(예를 들어, 광학 센서)와 정렬되는 임의의 위치이다. 인덱싱된 위치에서 정지해야하는 요건은 랙 슬롯(208)의 안과 밖으로 슬라이드 랙(220)이 삽입 및 추출되는 것이 자동 로더 시스템(auto-loader system)에 가시적으로 유지됨을 보장한다. 상세하게는, 일 실시예에서, 슬라이드 랙(220)이 랙 슬롯(208)에 삽입되거나 그로부터 추출될 때를 랙 검출기가 식별하도록, 따라서 프로세서(104)가 랙의 상태를 정확하게 업데이트하도록, 인덱싱된 위치들 중 하나에 캐러셀(200)이 있어야 한다.
도 7a 는, 일 실시예에 따라서, 인덱싱된 위치에 있는 캐러셀(200)을 도시하는 반면에, 도 7b 는 인덱싱되지 않은 위치에 있는 캐러셀(200)을 도시한다. 도 7a 에 도시된 바와 같이, 인덱싱된 위치에서, 랙 검출기들 각각은 개별의 랙 슬롯(208)과 정렬되고, 캐러셀(200)의 후방 단부에 있는 랙 슬롯(208)은 랙 로딩(rack loading)/언로딩(unloading) 메커니즘과 정렬된다. 특히, 랙 슬롯(208)(예를 들어, 예시된 실시예에서 15 개)만큼 캐러셀(200)에 대한 인덱싱된 위치가 있을 것이다. 대조적으로, 도 7b 에 도시된 바와 같이, 인덱싱되지 않은 위치에서, 랙 검출기들중 어느 것도 그 어떤 랙 슬롯(208)과도 정렬되지 않으며, 랙 로딩/언 로딩 메커니즘은 그 어떤 랙 슬롯(208)과도 정렬되지 않는다.
1.8. 예시적인 핀치 포인트 센서(Pinch-Point Sensor)
도 8 은 일 실시예에 따른 핀치 포인트 센서(810)의 위치 선정을 도시한다. 일 실시예에서, 핀치-포인트 센서(810)는 스캐닝 시스템(100)의 노출된 부분(800)의 먼 에지에 위치한 한 쌍의 센서들을 포함한다. 노출된 부분(800은 스캐닝 시스템(100)의 측부, 바람직하게는 스캐닝 시스템(100)의 전방에 개구를 포함한다. 개구는 캐러셀(200)에 있는 인접한 슬롯 랙(208)의 세그먼트를 스캐닝 시스템(100)의 외부 환경에 노출시킴으로써, 작업자가 직접 접근할 수 있게 한다.
예시된 실시예에서, 핀치-포인트 센서(pinch-point sensor, 810)는 노출된 부분(800)의 양측에 2 개의 센서(810A 및 810B)를 포함한다. 핀치-포인트 센서(810A 및 810B)는 캐러셀(200)이 슬라이드 랙(220)을 노출된 부분(800)으로부터 스캐닝 시스템(100)의 노출되지 않은 내부로 움직이는 위치와 관련된 잠재적인 안전상의 위험을 검출하도록 위치된다.
일 실시예에서, 핀치 포인트 센서(810)의 출력은 캐러셀(200)을 회전시키기 위해 캐러셀 벨트(210)를 구동하는 캐러셀 모터에 대한 모션 콘트롤러(108) (예를 들어, Trinamic ™ 모션 컨트롤러)의 제동 특징(braking feature)에 물리적으로 연결된다. 따라서, 핀치 포인트 센서(810)가 트리거(trigger)될 때, (예를 들어, 캐러셀(200)이 인덱싱된 위치에 있지 않더라도) 캐러셀(200)은 회전할 수 없다 .
1.9. 예시적인 광 커튼(light curtain)
도 9a 및 도 9b 는 일 실시예에 따른 스캐닝 시스템(100)의 노출된 부분(800)에 있는 광 커튼(light curtaion)을 도시한다. 도 9a 는 슬라이드 랙(208)을 통한 예시적인 단면에서의 광 커튼(900)의 측면도를 도시하는 반면에, 도 9b 는 일 실시예에 따른 캐러셀(200)의 사시도와의 관계에서 광 커튼(900)을 도시한다.
도 9a 에 도시된 바와 같이, 슬라이드 랙(220)은 슬라이드 랙(220) 내의 유리 슬라이드(114)의 단부가 수직으로 정렬되지 않도록 캐러셀(200)의 베이스(202)의 각진 부분(angled portion)상에 위치된다. 스캐닝 시스템(100)은 캐러셀(200)과 유사하게 평면도에서 만곡 된 장착 브래킷(910)을 포함한다. 장착 브래킷(910)은 송신기/수신기 쌍(920/925)(예를 들어, 예시된 실시예에서의 920)의 일측을 지지할 수 있다. 송신기/수신기 쌍(920/925)(예를 들어, 예시 된 실시예에서 925)의 다른 측은 캐러셀베이스(202)의 주위에 인접한 스캐닝 시스템(100)의 베이스 상에 위치된다.
각각의 송신기/수신기 쌍(920/925)은 직접 무선 링크를 통해(예를 들어, 송신기에 의하여 조사되고 수신기에 의해 수신된 광을 통해) 통신되게 결합될 수 있고, 직접 무선 링크의 중단을 통해 송신기/수신기 쌍(920/925) 사이에 배치된 목적물의 존재를 검출하도록 구성된다. 복수의 송신기/수신기 쌍(920/925)은 노출된 부분(800) 전체의 둘레에 있는 광 커튼(900)을 형성하기 위해 스캐닝 시스템(100)의 노출된 부분(800)내에서 캐러셀(200) 둘레에 제공될 수 있다. 특히, 슬라이드 랙(220)은 적절하게 안착될 때 각도를 이루기 때문에, 복수의 송신기/수신기 쌍(920/925)은 서로에 대하여 동일한 각도로 위치될 수도 있어서, 각각의 유리 슬라이드(114)의 단부는 슬라이드 랙(220) 안에 적절하게 안착될 때 슬라이드 랙(220) 안의 임의의 다른 유리 슬라이드(114)와 마찬가지의 광 커튼(900)으로부터 동일 거리에 있다.
일 실시예에서, 각각의 송신기/수신기 쌍(920/925)의 수신기는 대응하는 송신기로부터의 그 어떤 광 펄스도 수신하지 않을 때 광 커튼 내의 장애물(obstruction)을 검출한다. 따라서, 장애물이 검출될 때, 수신기는 신호를 스캐닝 시스템(100)의 프로세서(104)에 제공할 수 있어서, 프로세서(104)는 장애물의 존재에 기초하여 적절한 조치를 취할 수 있다.
2. 프로세스 개관
이하에서는 슬라이드 스캐닝 시스템을 제어하는 과정의 실시예를 상세히 설명한다. 설명된 프로세스는 스캐닝 시스템(100)에서 하나 이상의 하드웨어 프로세서(104)에 의해 실행되는 하나 이상의 소프트웨어 모듈에서 구현될 수 있다는 것을 이해해야한다. 설명된 프로세스는 소스 코드(source code), 객체 코드(object code) 및/또는 기계 코드(machine code)로 표현된 명령으로서 구현될 수 있다. 이들 명령들은 하드웨어 프로세서(들)에 의해 직접 실행될 수 있거나, 대안으로서 객체 코드와 하드웨어 프로세서 사이에서 작동하는 가상 장치(virtual machine)에 의해 실행될 수 있다.
대안으로서, 설명된 프로세스는 하드웨어 구성 요소(예를 들어, 범용 프로세서, 집적 회로(IC), 주문형 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 필드 프로그래머블 게이트 어레이(field-programmable gate array; FPGA) 또는 기타 프로그래머블 논리 장치, 개별 게이트 또는 트랜지스터 논리 등), 하드웨어 구성 요소들의 조합 또는 하드웨어와 소프트웨어 구성 요소의 조합으로서 구성될 수 있다. 하드웨어와 소프트웨어의 호환성(interchangeability)을 명확하게 설명하기 위해, 다양한 예시적인 구성 요소, 블록, 모듈, 회로 및 단계들은 일반적으로 그것의 기능성과 관련하여 설명된다. 그러한 기능이 하드웨어 또는 소프트웨어로서 구현되는지 여부는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 따른다. 당업자는 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식으로 구현할 수 있지만, 그러한 구현의 결정이 본 발명의 범위를 벗어나는 것으로 해석되어서는 아니된다. 또한 구성 요소, 블록, 모듈, 회로 또는 단계 내에 있는 기능들의 그룹은 설명을 쉽게하기 위한 것이다. 특정 기능 또는 단계는 본 발명에서 벗어나지 않고 하나의 구성 요소, 블록, 모듈, 회로 또는 단계에서 다른 단계로 움직일 수 있다.
더욱이, 본 명세서에 설명된 프로세스는 단계들의 특정 배열 및 순서를 가지고 설명되지만, 각각의 프로세스는 더 적거나, 더 많거나, 상이한 단계들 및, 단계들의 상이한 배열 및/또는 순서로 구현될 수 있다. 또한, 단계들이 특정 순서로 설명되거나 예시될지라도, 다른 단계의 완료에 의존하지 않는 그 어떤 단계라도 다른 독립 단계 이전, 이후 또는 병렬로 실행될 수 있음이 이해되어야 한다.
2.1. 자동 로더 초기화(Auto-Loader Initialization)
일 실시예에서, 스캐닝 시스템(100)은, 유리 슬라이드(114) 및/또는 슬라이드 랙(220)에서 작동하는 스캐닝 시스템(100) 내의 다른 서브 시스템(sub system) 및/또는 캐러셀(200), 푸쉬/풀 어셈블리(300)를 포함하는 자동 로더 시스템(auto-loader system)을 포함하여, 슬라이드 랙(220)을 캐러셀(200)에 있는 랙 슬롯(208)의 안과 밖으로 로딩하고 유리 슬라이드(114)를 각각의 슬라이드 랙(220)에 있는 슬롯들의 안과 밖으로 로딩한다. 스캐닝 시스템(100)이 시작되면, 자동 로더 시스템은 "원점 복귀(homing)" 프로세스를 포함하는 초기화 프로세스를 수행할 수 있다. 원점 복귀는 자동 로더 시스템의 가동 구성 요소들이 그들의 축 또는 축들의 초기 제로 위치로 자체를 복귀시키는 프로세스이다. 대부분의 구성 요소들에서, 원점 복귀 프로세스는 리미트 스위치 또는 리미트 센서(limit sensor)가 트리거되어 움직임을 중지시킬 때까지 하나 이상의 축들을 따라서 구성 요소를 움직이는 것을 포함한다. 그 후 구성 요소의 인코더(encoder)는 그 정지 위치에서 제로화되고, 구동 콘트롤러는 스캐닝 시스템(100)이 다시 시작되거나 전력이 손실될 때까지 절대 위치를 유지한다.
도 10 은 일 실시예에 따른 자동 로더 시스템의 예시적인 초기화 프로세스(1000)를 도시한다. 단계(1010)에서, 스캐닝 시스템(100)의 프로세서(104)는 (예를 들어, 하나 이상의 모션 콘트롤러(108)를 통해) 백-엔드 구성 요소(back end components)에 대한 원점 복귀를 수행한다. 즉, 유리 슬라이드(114)를 스캐닝하는데 사용되는 구성 요소들(예 : 스테이지(112), 대물 렌즈(120) 등)은 (예를 들어, 프로세서(104)에 의해) 그들의 축을 제로 아웃(zero out)시키기 위해 원점 복귀를 수행하도록 제어된다. 유사하게, 단계(1020)에서, 자동 로더 시스템은 전방 단부 구성 요소(front end components)들에 대한 원점 복귀를 수행한다. 예를 들어, 슬라이드 랙(200) 및 유리 슬라이드(114) (예를 들어, 캐러셀(200), 푸쉬/풀 어셈블리(300), 캐러셀과 푸쉬/풀 어셈블리(300) 사이에서 슬라이드 랙(220)를 구동하기 위한 리프트의 클램프 등)를 로딩 및 언로딩하는데 사용되는 구성 요소)는 그들의 축들(axes)을 제로 아웃(zero out)시키기 원점 복귀를 수행하도록 제어된다.
단계(1030)에서, 스캐닝 시스템(100)의 프로세서(104)는, 만약 존재한다면, 캐러셀(200)의 랙 슬롯(208)에 있는 모든 슬라이드 랙(220)의 목록(inventory)을 만들고, 만약 존재한다면 캐러셀(200)로부터 언로딩된 모든 슬라이드 랙(220)의 목록(inventory)을 만들 수 있다. 이러한 목록(inventory)에 기초하여, 단계(1040)에서, 프로세서(104)는 그 어떤 로딩된 슬라이드 랙(220)이 있는지 여부를 결정한다. 예를 들어, 초기화 동안, 만약 스캐닝 시스템(100)의 이전 작동중에 정전이 발생되었을 때 (예를 들어 유리 슬라이드(114)를 스테이지(112)로 로딩하거나 스테이지로부터 언로딩하도록) 슬라이드 랙(114)이 로딩되었다면, 슬라이드 랙(220)은 여전히 캐러셀(200) 외부의 스캐닝 시스템(100)의 후방 단부내에 있을 수 있다. 만약 캐러셀(200) 외부에 로딩된 슬라이드 랙(220)이 있다면 (즉, 단계(1040)에서 "예" 라면), 슬라이드 랙(220)은 단계(1050)에서 캐러셀(200)의 랙 슬롯(208)으로 다시 언로딩된다.
만약 캐러셀(200) 외부에 로딩된 슬라이드 랙(220)이 없거나 (즉, 단계(1040)에서 "아니오") 또는 로딩된 슬라이드 랙(220)이 단계(1050)에서 언로딩다면, 캐러셀은 다시 시작 위치로 회전된다. 예를 들어, 이러한 시작 위치에서, 랙 슬롯(208)의 시작 서브 세트(starting subset) (예를 들어, "1"-"6"으로 표시된 랙 슬롯(208))는 스캐닝 시스템(100)의 외부 환경에 노출될 수 있거나, 비어 있는 랙 슬롯(208)의 최대 수는 여기의 다른 곳에서 설명된 바와 같이 노출될 수 있다.
2.2. 연속적인 로딩 작업 흐름(Continuous Load Workflow)
일 실시예에서, 스캐닝 시스템(100)은 진정한 연속 로딩 작업 흐름(true continuous load workflow)을 제공하기 위해 오픈 프레임 설계(open frame design)로 작동한다. 즉, 슬라이드 랙(220)의 용이한 로딩 및 언로딩을 위해, 노출된 부분(800)에서, 일정한 수의 슬롯 랙(208)들은 항상 외부 환경에 노출된다. 연속적인 로딩 작업 흐름은, 작업자가 노출된 슬롯 랙(208)으로부터 슬라이드 랙(220)을 추가하고 제거함에 따라 스캐닝 시스템(100)이 유리 슬라이드(114)를 중단 없이 계속 스캔하는 것을 의미한다.
스캐닝 시스템(100)의 프로세서(104)는, 작업자가 새로운 슬라이드 랙(220)을 신속하게 비어 있는 랙 슬롯(208)으로 삽입 할 수 있도록, 정상 작동 중에 (예를 들어, 노출된 비어 있는 슬롯 랙(208)의 수를 최대화시킴으로써) 캐러셀(200)의 위치를 최적화하려고 시도할 수 있다. 이러한 설계의 한 가지 요소는, 처리 될 준비가 되었을 때 자동 로더 시스템은 처리되지 않은 다음 슬라이드 랙(220)을 캐러셀(200)로부터 완전히 끌어당기는 성능이다. 이것은 캐러셀(200)이 자유롭게 위치할 수 있게 하는 반면에, 스캐닝 시스템(100)의 후방 단부는 유리 슬라이드(114)를 계속 스캔한다. 일단 활성 슬라이드 랙(220)이 프로세싱을 위해 캐러셀(200)로부터 로딩되면, 활성 슬라이드 랙(220)이 프로세싱되고 활성 슬라이드 랙(220) 안의 유리 슬라이드(114)가 스캔되는 동안 캐러셀(200)은 자유롭게 회전한다.
자동 로더 시스템을 제어하기 위한 소프트웨어는 두 가지 유형의 회전, 즉 능동(active) 및 자동(automatic)의 유형을 정의할 수 있다. 모든 회전의 예에서, 오작동을 최소화하기 위하여, 자동 로더 제어 소프트웨어는 그 어떤 회전이라도 시작하기 전에 엄격한 조건들의 충족을 필요로 할 수 있다.
능동 회전(active rotation)은 스캐닝 시스템(100)의 노출된 부분(800)내에 특정 슬라이드 랙(220)을 제시하라는 작업자의 명령에 응답하여 캐러셀(200)을 회전시키는 것을 의미한다. 이것은 노출된 랙 슬롯(208)들 중 하나에 현재 있지 않은 특정 슬라이드 랙(220)을 작업자가 회수할 필요가 있을 때 보통 필요하다. 명령을 제공하도록, 사용자는 스캐닝 시스템(100)의 콘솔(예를 들어, 터치 패널 디스플레이) 안에서, 작업자가 접근하려는 특정 슬라이드 랙(220)을 선택하고, 다음에 상기 선택된 슬라이드 랙(220)이 능동 회전을 시작하도록 "회전" 입력 요소를 선택한다. 다음에 프로세서(104)는, 그렇게 하는 것이 안전하자마자, 타이어가 선택된 슬라이드 랙(220)을 노출시키도록 능동 회전을 수행하게끔 캐러셀(200)을 제어할 것이다.
자동 회전은 사용자의 그 어떤 시작이나 상호 작용없이 자동으로 캐러셀(200)을 회전시키는 것을 의미한다. 예를 들어, 스캐닝 시스템(100)이 다음의 활성 슬라이드 랙(220)을 처리할 준비가 될 때마다, 프로세서(104)는 다음의 활성 슬라이드 랙(220)을 로딩을 위한 위치에 배치하기 위해 자동 회전을 수행할 수 있다. 다른 예로서, 캐러셀(200)을 디폴트 상태(default state)로 되돌리기 위하여 스캐닝 시스템(100)이 작동을 완료할 때 자동 회전이 수행될 수 있으며, 여기서 비어 있는 랙 슬롯(208)의 최대 개수는 스캐닝 시스템(100)의 전방에 노출된다.
2.3. 랙 감지 및 LED 표시기(Rack Detection and LED Indicators)
본 명세서의 다른 곳에서 설명된 바와 같이, 특정 개수의 랙 슬롯(208)은 슬라이드 랙(220)의 용이한 로딩 및 언로딩을 위해 (예를 들어 스캐닝 시스템(100)의 전방에서) 스캐닝 시스템(100)의 외부 환경에 항상 노출된다. 예시된 실시예에서, 노출된 랙 슬롯(208)의 수는 항상 6 개이다. 즉, 6 개의 랙 슬롯(208)은 스캐닝 시스템(100)의 전방에 있는 노출된 부분(800) 내에서 항상 접근 가능하다. 그러나, 캐러셀(200) 및/또는 스캐닝 시스템(100)의 프레임은 더 적거나 더 많은 노출된 랙 슬롯(208)을 제공하도록 구성될 수있다. 또한, 노출된 랙 슬롯(208)은 전방이 아닌 스캐닝 시스템(100)의 측부에 노출될 수 있다.
일 실시예에서, 광학 센서는 적어도 각각의 노출된 랙 슬롯(208) 내에 정렬되어, 랙 슬롯(208)으로의 슬라이드 랙(220)의 각각의 삽입 및 랙 슬롯(208)으로부터의 슬라이드 랙(220)의 제거를 검출한다. 일단 슬라이드 랙(220)이 랙 슬롯(208) 내에 완전히 안착되면, 광학 센서는 슬라이드 랙(220)의 존재를 나타내는 값을 주장하고, 자동 로더 펌웨어(auto-loader firmware)는 랙 슬롯(208)에 대한 랙 상태(rack sate)를 부재(absent)로부터 존재(present)로 업데이트한다. 반대로, 만약 슬라이드 랙(220)이 랙 슬롯(208)으로부터 제거되면, 광학 센서는 슬라이드 랙(220)의 부재를 나타내는 값을 주장하고, 자동 로더 펌웨어는 랙 슬롯(208)에 대한 랙 상태를 존재로부터 부재로 업데이트한다.
일 실시예에서, 스캐닝 시스템(100)의 노출 된 부분(800)에 있는 각각의 노출된 랙 슬롯(208)은 발광 다이오드(LED)(1100)와 관련된다. LED(1100)들은 스캐닝 시스템(100)의 노출된 부분(800)에서 캐러셀(200)의 주변 가장자리 둘레에 포함될 수 있으되, 캐러셀(200)이 인덱싱된 위치에서 휴지 상태에 있을 때 하나의 LED(1100)는 각각의 노출된 랙 슬롯(208) 앞에 위치한다. 슬라이드 랙(220)이 노출된 랙 슬롯(208)에 삽입될 때마다, 노출된 랙 슬롯(208) 앞에 위치한 LED(1100)는 여전히 가시적이다. 6 개의 랙 슬롯(208)이 임의의 주어진 시간에 스캐닝 시스템(100)의 전방에 노출되는 실시예에서, 캐러셀(200)의 전방을 따르는 곡선에서 스캐닝 시스템의 베이스에 고정된 6 개의 LED(1100A-110F)들의 세트가 있을 수 있다. 특히, LED(1100)의 스트립은 고정되고, 캐러셀(200)이 회전함으로써 상이한 랙 슬롯(208)은 시간이 지남에 따라 임의의 주어진 LED(1100)와 연관될 수 있다. 에러 상태(error state)에 있지 않은 한, LED(1100)는 연관된 랙 슬롯(208)에서 슬라이드 랙(220)의 상태를 나타내는 색상으로 빛나도록 구성될 수 있다. LED(1100)는 "비어 있음" 상태에서 꺼지거나 회색 또는 흰색으로 빛날 수 있다.
도 11a 및 11b 는 일 실시예에 따라서 슬라이드 랙(220)이 검출되면 자동 로더 시스템의 거동을 도시한다. 도 11a 에 도시된 바와 같이, 원점 복귀(homing) 프로세스 후에, 프로세서(104)는 랙 슬롯(208)의 시작 세트를 노출시키도록 자동 회전을 수행한다. 이것은 프로세스(1000)에서 단계(1060)에 대응한다. 예시된 예에서, 모든 랙 슬롯(208)이 비어있는 상태에서, 랙 슬롯(208)의 시작 세트는 "1" 내지 "6" 으로 표시된 처음의 6 개의 랙 슬롯(208)들이다. 도 11b 에 도시된 바와 같이, 제 1 및 제 3 랙 슬롯(208)(즉, "1" 및 "3" 으로 각각 표시됨)에 슬라이드 랙(220)의 완전한 삽입 및 검출시에, 자동 로더(auto-loader)는 새로 점유된 제 1 및 제 3 랙 슬롯(208)과 관련된 LED(1100A, 1100)을 켠다. 또한, 새로 검출된 슬라이드 랙(220)은 처리 대기 중이므로, 이들 LED(1100A 및 1100C)의 칼러는 "처리 대기 중"(예를 들어, 블루) 상태와 관련된 칼러이다.
도 12는 일 실시예에 따라서, 스캐닝 시스템(100)의 콘솔(예를 들어, 터치 패널 디스플레이) 상에 디스플레이 될 수 있는 그래픽 사용자 인터페이스의 캐러셀 스크린을 예시한다. 예시된 바와 같이, 캐러셀 스크린은 그래픽 캐러셀 표현(1210)을 포함하는데, 이는 개별의 랙 슬롯(208)의 상태와 관련된 칼러로 채색된, 각각의 랙 슬롯(208)의 그래픽 표현을 포함한다. 캐러셀 스크린은 또한 칼러가 나타내는 상태로 칼러들 각각을 매핑(mapping)하는 범례(1220)를 포함한다. 예를 들어, "비어 있는" 상태(예를 들어, 랙 슬롯(208)은 비어 있음)는 그레이(gray)와 관련될 수 있고, "스캐닝을 대기하는" 상태(예를 들어, 랙 슬롯(208)이 점유되어 있지만 점유하는 슬라이드 랙(220)은 아직 처리되지 않음)는 라이트 블루(light blue)와 관련될 수 있고, "스캐닝"의 상태(예를 들어, 랙 슬롯(208)이 점유되고 점유하는 슬라이드 랙(220)은 현재 프로세싱되고 있음)는 다크 블루(dark blue)와 관련될 수 있고, "완료"의 상태(예를 들어, 랙 슬롯(208)은 점유되고 점유하는 슬라이드 랙(220)은 완전히 처리됨)는 그린과 관련될 수 있고, "경고"의 상태(예를 들어, 랙 슬롯(208)은 점유되고 점유하는 슬라이드 랙(220)을 처리하는 동안 경고가 이루어짐)는 오렌지(orange)와 관련될 수 있다. 또한, 우선 상태(예를 들어, 랙 슬롯(208)을 차지하는 슬라이드 랙(220)이 처리를 위해 우선 순위가 지정됨)는 아이콘(예를 들어, 느낌표)과 연관될 수 있다.
연관된 랙 슬롯(208)에서 슬라이드 랙(220)의 상태를 반영하는 데 사용되는 LED 칼러는 그래픽 캐러셀 표현(1210)에 사용되는 범례(1220)의 칼러에 대응할 수 있다. 예를 들어, 꺼짐(off), 그레이(gray) 또는 화이트 LED(1100)는 "비어 있음" 상태를 나타낼 수 있고, 블루 LED(1100)는 "스캔 대기" 상태를 나타낼 수 있고, 그린 LED(1100)는 "완료" 상태를 나타낼 수 있고, 오랜지 LED(1100)는 "경고" 상태를 나타낼 수 있다. 일반적으로, 현재 처리되고 있는 슬라이드 랙(220)이 점유하는 랙 슬롯(208)은 항상 스캐닝 시스템(100)의 내부에 있을 것이고 따라서 결코 노출되지 않기 때문에, "스캐닝" 상태는 LED(1100)에 의해 명확하게 표현될 필요가 없을 것이다. 따라서, 위의 동일한 예시적인 칼러들을 이용하여, LED(1100)는 "스캐닝 대기" 및 "스캐닝" 상태를 모두 나타내도록 블루의 단일 음영을 사용할 필요만이 있다.
2.4. 자동 회전
전술한 바와 같이, 캐러셀(200)은 능동 회전 또는 자동 회전에 따라 제어될 수 있다. 자동 회전은 사용자기 개시하지 않는 캐러셀(200)의 임의 위치 변경으로서 정의된다. 이하, 자동 회전이 발생할 수 있는 복수의 상황에 대한 작업 흐름에 관하여 설명한다. 상세하게는, 다음의 거동들 중 하나 이상은 캐러셀(200)의 자동 회전을 이용할 수 있다: 원점 복귀; 처리를 위해 슬라이드 랙(220)의 로딩; 처리된 슬라이드 랙(220)의 언로딩; 노출을 위하여 비어 있는 랙 슬롯(208)의 최대수 제시; 및 캐러셀 드리프트 수정(carousel drift correction).
2.4.1. 원점 복귀
일 실시예에서, 본 명세서의 다른 곳에서 언급된 바와 같이, 초기화(예를 들어, 콜드 리스타트(cold restart))시에, 프로세서(104)는 캐러셀(200)에 대한 원점 복귀 프로세스를 수행할 수 있다. 이러한 원점 복귀 프로세스는 캐러셀의 인코더 위치를 제로화시키고, 다음에 캐러셀(200)의 슬라이드 랙(220)들의 목록(inventory)을 만든다. 만약 슬라이드 랙(220)이 존재하면, 최대 수의 비어 있는 랙 슬롯(208)을 노출하는 최종 상태에서 끝나기 전에, 자동 로더 시스템은 대기열에서 제 1 슬라이드 랙(220)을 처리하기 시작한다.
도 13 은 일 실시예에 따라서, 캐러셀(200)의 예시적인 원점 복귀프로세스(1300)를 도시한다. 단계(1310)에서, (예를 들어, 메모리(106)로부터) 원점 복귀 모션 프로파일(homing motion profile)이 로딩된다. 단계(1320-1340)에서, 캐러셀(200)은 로딩된 원점 복귀 모션 프로파일에 따라 원점 복귀된다. 상세하게는, 단계(1320)에서, 캐러셀(200)은 캐러셀(200)의 리미트 스위치가 트리거 될 때까지 한 방향(예를 들어, 시계 방향)으로 회전된다. 리미트 스위치가 트리거(triger)될 때, 단계(1330)에서, 캐러셀(200)은 리미트 스위치를 뒤로 물리도록(back off) 반대 방향 (예를 들어, 시계 반대 방향)으로 회전된다. 다음에, 단계(1340)에서, 캐러셀(200)은 리미트 스위치로 다시 회전되고 캐러셀의 인코더 위치는 제로가 된다. 단계(1350)에서, 이동 모션 프로파일(movement motion profile)은 (예를 들어, 메모리(106)로부터) 로딩된다. 이동 모션 프로파일은 정상 작동 동안 캐러셀(200)의 움직임을 통제할 수 있다.
단계(1360)에서, 스캐닝 시스템(100)의 프로세서(104)는 캐러셀(200)의 랙 슬롯(208)에 있는, 만약 존재한다면 모든 슬라이드 랙(220)들의 목록을 만들고, 캐러셀(200)로부터 언로링되었던, 만약 존재한다면 모든 슬라이드 랙(220)의 목록을 만들 수 있다. 이러한 목록(inventory)에 기초하여, 단계(1370)에서, 프로세서(104)는 그 어떤 슬라이드 랙(220)이 있는지 여부를 결정한다. 만약 적어도 하나의 슬라이드 랙(220)이 있다면 (즉, 단계(1370)에서 "예"라면), (예를 들어, 슬라이드 랙(220)을 우선시하는) 처리 대기열의 제 1 슬라이드 랙(220)은 단계(1380)에서 캐러셀(200)로부터 로딩된다. 만약 슬라이드 랙(220)이 없거나 (즉, 단계(1370)에서 "아니오"이거나) 또는 단계(1380) 이후에, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800) 내의 비어 있는 랙 슬롯(208)의 수를 최대화시키도록 캐러셀(200)의 자동 회전을 수행한다.
2.4.2. 로딩(loading)
일 실시예에서, 스캐닝 시스템(100)의 작업 흐름(예를 들어, 프로세서(104) 및/또는 모션 콘트롤러(108)에 의해 구현됨)은, 일단 유리 슬라이드(114)가 스테이지(112)에 로딩되었다면, 유리 슬라이드(114)를 디지털화하도록 모든 후방 단부 기능을 관리한다. 스캐닝 시스템(100)의 후방 단부(back end)가 새로운 유리 슬라이드(114)를 수용 할 준비가 되면, 이것은 "로드 슬라이드(load slide)" 상태로 진입하는데, 여기에서 자동 로더 시스템은 다음의 유리 슬라이드(114)의 로딩이 시작되기를 기다린다. 자동 로더 시스템을 제어하는 프로세서(104)가 다음 유리 슬라이드(114)는 새로운 슬라이드 랙(220)에 속한다고 결정할 때(예를 들어, 현재 로딩된 슬라이드 랙(220)이 없거나 또는 현재 로딩된 슬라이드 랙(220)이 완전히 처리됨), 프로세서(104)는 다음 활성 슬라이드 랙(220)을 처리하기 위한 프로세스를 개시한다.
도 14a-14c는 일 실시예에 따라서, 다음의 활성 슬라이드 랙(220)을 로딩하기위한 프로세스를 도시한다. 예를 들어, 자동 로더 시스템이 원점 복귀 프로세스를 완료한 후에, 제 1 슬라이드 랙(220)을 취급하기 위하여 상기 프로세스가 개시될 수 있다. 단계(1405)에서, 원점 복귀 프로세스를 완료한 후, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800)에 번호가 매겨진 순서로 슬롯 랙(208)을 제시하기 위해 자동 회전을 수행한다.
단계(1410)에서, 랙 슬롯(208A)에 있는 센서는 슬라이드 랙(220A)의 삽입을 검출한다. 예를 들어, 작업자는 슬라이드 랙(220A)을 제 1 택 슬롯(tack slot, 208A)에 삽입할 수 있다. 삽입된 슬라이드 랙(220A)의 검출에 응답하여, 프로세서(104)는 슬라이드 랙(220A)이 검출되었고 처리 대기열(processing queue)에 추가되었음을 표시하도록 랙 슬롯(208A)의 상태를 업데이트한다. 따라서, 제 1 랙 슬롯(208A)에 대응하는 LED(1100A)는 이러한 새로운 상태를 나타내기 위해 (예를 들어, 꺼짐/회색/흰색으로부터 파란색으로) 변화 될 수있다.
단계(1415)에서, 캐러셀(200)의 자동 회전을 수행할 때까지 프로세서(104)는 지연 기간(예를 들어, 10 초)을 카운트 다운하는 카운트다운 타이머를 시작할 수있다. 새로운 슬라이드 랙(208)이 검출된 후, 스캐닝 시스템(100)의 노출된 부분(800)으로 경계(예를 들어, 작업자의 손가락)를 가로지르는 것이 없다는 것을 센서가 검출하자마자 카운트다운 타이머가 시작될 수 있다. 노출 경계를 가로 지르는 물체(oblect)의 존재는, 캐러셀(200)을 노출시키는 스캐닝 시스템(100)의 프레임 안의 개구를 가로질러 (예를 들어, 수직으로) 형성된 광 커튼(900)과 같은 센서에 의해 검출될 수 있다. 카운트다운 타이머는 스캐닝 시스템(100)의 콘솔에서 그래픽 사용자 인터페이스의 캐러셀 스크린상의 그래픽 캐러셀 표현(1210)내에 예시될 수 있다. 예를 들어, 파란색 원형 막대는 지연 기간 내에 채움(full)으로부터 비어 있음(empty)으로 천이할 수 있어서, 캐러셀(200)의 임박한 회전까지 지연 기간 내에 시간이 얼마나 남았는지를 사용자에게 경고할 수 있다. (예를 들어 광 커튼(900)에 의해 검출되는 바로서) 작업자가 스캐닝 시스템(100)의 노출 부분(800) 안에 무엇인가를 삽입하거나 또는 작업자가 콘솔의 터치 패널 디스플레이를 터치하는 것과 같은, 그 어떤 사용자 인터액션에 응답하여, 지연 기간(delay period)은 재설정될 수 있다.
단계(1420)에서, 자동 회전 이전의 특정의 시간 윈도우(window of time) 내에서, 스캐닝 시스템(100)의 콘솔에 있는 그래픽 사용자 인터페이스는 자동 회전이 임박했다는 표시를 디스플레이할 수 있다. 예를 들어, 상기 표시는 캐러셀 스크린상의 그래픽 캐러셀 표현(1210)대신에 디스플레이되는 커다란 회전 아이콘(rotation icon)일 수 있다. 시간 윈도우는 3 초일 수 있다. 일 실시예에서, 회전 아이콘은 임의의 회전 전체 동안 그래픽 사용자 인터페이스에 계속 디스플레이될 수 있다.
단계(1425)에서, 회전 아이콘이 단계(1420)에서 그래픽 사용자 인터페이스에 표시됨과 동시에, 스캐닝 시스템(100)의 노출된 부분(800)에 있는 모든 LED(1100)들은 점멸하거나 깜빡일 수 있다. 일 실시예에서, 자동 회전의 시작 전에, 동일한 시간 윈도우(예를 들어 3 초)내에서 LED(1100)는 깜빡이고 회전 아이콘은 디스플레이된다. LED(1100)들은 작업자에게 임박한 회전에 대해 경고하기 위하여 자동 회전이 시작되기 전에 특정 횟수 (예를 들어, 3 회)를 깜박일 수 있다. LED(1100)들은 연관된 랙 슬롯(208)의 임의의 상태와 관련된 칼러(color)들이 아닌 칼러로(예를 들어, 노란색으로) 깜박일 수 있다.
단계(1430)에서, 사용자의 상호 작용이 개입되지 않으면서 (예를 들어 콘솔을 터치하지 않고, 광 커튼(900)을 중단시키지 않는 등) 지연 기간이 만료된다면, 자동 회전이 시작된다. 상세하게는, 캐러셀(200)은 로딩된 슬롯 랙(208A)을 스캐닝 시스템(100)내의 로딩 위치로 회전시킬 것이다. 도시된 바와 같이, 로딩 위치는 스캐닝 시스템(100)의 대향되는 노출 부분(800)이다. 일단 슬롯 랙(208A)이 로딩 위치에 있으면, 자동 로더 시스템은 슬롯 랙(208A)으로부터 슬라이드 랙(220A)을 제거하고, 슬라이드 랙(220A)의 처리를 시작한다.
단계(1435)에서, 카운트다운 타이머는 새로 시작되고, 스캐닝 시스템 (100)의 콘솔에 있는 그래픽 사용자 인터페이스의 캐러셀 스크린상에서 그래픽 캐러셀 표현(1210)내에 다시 예시된다. 이전에서와 같이, 카운트다운 타이머는 지연 기간(예를 들어 10 초)을 카운트다운하는데, 이것은 사용자 상호 작용(user interaction) (예를 들어, 콘솔의 터치 패널 디스플레이의 터치, 광 커튼(900) 중단 등)이 발생할 때마다 리셋(reset)된다. 특히, 단계(1435)는 단계(1415)와 동일하다.
단계(1440)에서, 자동 회전 이전의 시간 윈도우(window of time) 내에서, 스캐닝 시스템(100)의 콘솔에 있는 그래픽 사용자 인터페이스는 자동 회전이 임박했다는 표시를 다시 디스플레이할 수 있다. 단계(1440)는 단계(1420)와 동일하다.
단계(1445)에서, 회전 아이콘이 단계(1440)에서 그래픽 사용자 인터페이스에 표시됨과 동시에, 스캐닝 시스템(100)의 노출된 부분(800)에 있는 모든 LED(1100)들은 점멸하거나 깜빡일 수 있다. 단계(1445)는 단계(1425)와 동일하다.
단계(1450)에서, 사용자 상호 작용의 개입 없이 지연 기간이 만료되면, 자동 회전이 시작된다. 상세하게는, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800)에 비어 있는 랙 슬롯(208)의 최대 수를 위치시키도록 자동 회전을 수행한다. 그러나, 이러한 경우, 제 1 랙 슬롯(208A) (즉, "1" 표시된 것)은 점유된 것으로 간주된다. 즉, 슬라이드 랙(220A)은 랙 슬롯(208A) 외부에서 처리되고 있을지라도, 슬라이드 랙(220A)은 랙 슬롯(208A)과 관련된 상태로 유지되고, 랙 슬롯(208A)의 상태는 현재 "스캐닝"된다. 따라서, 제 1 내지 제 6 랙 슬롯(208) (즉, "1" 내지 "6"으로 표시됨)이 노출되었던 단계(1405)와는 다르게, 단계(1150)에서 제 2 내지 제 7 랙 슬롯(208) (즉, "2" 내지 "7"로 표시됨)은 노출된다. 특히, 슬라이드 랙(220A)이 제 1 랙 슬롯(208A)의 외부에서 처리되는 한, 제 1 랙 슬롯(208A) (즉, "1"로 표시됨)은 결코 노출되지 않을 것이다. 이것은 처리되고 있는 슬라이드 랙(220A)으로 제 1 랙 슬롯(208A)이 기술적으로 점유되는 동안, 작업자가 다른 슬라이드 랙(220)을 제 1 랙 슬롯(208A)에 삽입하는 것을 방지할 것이다. 특히, 이러한 예에서, LED(1100)들 모두는 그들의 관련 랙 슬롯(208) (즉, "2" -"7"로 표시된 제 2 내지 제 7 랙 슬롯(208))이 비어 있음을 나타낸다.
2.4.3. 언로딩(unloading)
일 실시예에서, 일단 슬라이드 랙(220)이 처리되면, 슬라이드 랙(220)은 캐러셀(200) 내의 연관된 랙 슬롯(220)으로 복귀한다. 처리되었던 슬라이드 랙(220)은 자동 회전을 통해 스캐닝 시스템(100)의 노출 내에 반드시 제시될 필요는 없으며, 이는 비어 있는 랙 슬롯(208)이 노출에 대하여 우선될 것이기 때문이다. 이는 지속적인 로딩 작업 흐름(load workflow)을 최적화한다.
도 15a-15c 는 일 실시예에 따라서, 처리된 슬라이드 랙(220)을 위한 프로세스를 도시한다. 이해의 편의를 위해, 이러한 도면들은 도 14a 내지 도 14c 에 도시된 로딩 프로세스의 끝으로부터 시작된다. 상세하게는, 단계(1505)에서, 슬라이드 랙(220A)의 처리가 완료되었다(예를 들어, 슬라이드 랙(220A) 내의 모든 유리 슬라이드(114)가 스캔되었다). 따라서, 프로세서(104)는 자동 회전을 개시하여 슬라이드 랙(220A)을 관련 랙 슬롯(208A)으로 다시 언로딩한다.
단계(1510)에서, 프로세서(104)는 지연 기간 (예를 들어, 10 초)을 카운트 다운하고 사용자 상호 작용이 발생할 때마다 리셋하는 카운트다운 타이머를 시작할 수 있다. 또한, 프로세서(104)는 스캐닝 시스템(100)의 콘솔에서 그래픽 사용자 인터페이스의 캐러셀 스크린상의 그래픽 캐러셀 표현(1210)내에 지연 기간을 예시할 수 있다. 특히, 단계(1510)는 단계(1415) 및 단계(1435)와 동일하다.
단계(1515)에서, 자동 회전 이전의 시간 윈도우(예를 들어, 3 초) 내에, 스캐닝 시스템(100)의 타이어 콘솔의 그래픽 사용자 인터페이스는 자동 회전이 임박했다는 표시 (예를 들어, 회전 아이콘)를 표시할 수 있다. 특히, 단계(1515)는 단계(1420) 및 단계(1440)와 동일하다.
단계(1520)에서, 회전 아이콘이 단계(1515)에서 그래픽 사용자 인터페이스에 디스플레이됨과 동시에, 스캐닝 시스템(100)의 노출된 부분(800)에 있는 모든 LED(1100)들은 점멸하거나 깜빡일 수 있다. 특히, 단계(1520)은 단계(1425) 및 단계(1445)와 동일하다.
단계(1525)에서, 사용자 상호 작용의 개입 없이 지연 기간이 만료되면, 자동 회전이 시작된다. 상세하게는, 프로세서(104)는 스캐닝 시스템(100) 내부에서 캐러셀(200)의 로딩 위치로 랙 슬롯(208A)을 위치시키기 위해 자동 회전을 수행한다. 즉, 처리된 슬라이드 랙(220A)과 연관된 랙 슬롯(208A)은, 자동 로더 시스템의 랙 로딩 메커니즘(rack-loading mechanism)에 인접한 위치로 회전된다.
단계(1530)에서, 슬라이드 랙(220A)은 로딩 위치로 회전되었던 랙 슬롯(208A)으로 언로딩된다. 슬라이드 랙(220A)을 언로딩 한 후, 만약 처리 대기열에 그 어떤 다른 슬라이드 랙(220)이라도 남아 있으면, 프로세서(104)는 자동 회전을 시작하여 해당 슬라이드 랙(220)을 로딩한다 (예를 들어, 도 14a-14c에 예시된 프로세스를 사용함). 그렇지 않으면, 만약 처리되어야할 슬라이드 랙(220)이 남아 있지 않으면, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800)에 최대 수의 비어 있는 랙 슬롯(208)을 위치시키도록 자동 회전을 수행할 것이다.
단계(1535)에서, 프로세서(104)는 카운트다운 타이머를 시작하여 지연 기간을 카운트 다운하고 사용자 상호 작용(user interaction)이 발생할 때마다 카운트다운 타이머를 재설정(reset)할 수 있다. 또한, 프로세서(104)는 스캐닝 시스템(100)의 콘솔에서 그래픽 사용자 인터페이스의 캐러셀 스크린상의 그래픽 캐러셀 표현(1210)내에 지연 기간을 나타낼 수 있다. 특히, 단계(1535)는 단계(1415, 1435 및 1510)들과 동일하다.
단계(1540)에서, 자동 회전 이전의 시간 윈도우(time window) 내에서, 스캐닝 시스템(100)의 콘솔에 있는 그래픽 사용자 인터페이스는 자동 회전이 임박했다는 표시를 디스플레이할 수 있다. 특히, 단계(1535)는 단계(1420, 1440 및 1515)들과 동일하다.
단계(1545)에서, 회전 아이콘이 단계(1535)에서 그래픽 사용자 인터페이스에 디스플레이됨과 동시에, 스캐닝 시스템(100)의 노출된 부분(800)에 있는 모든 LED(1100)들은 점멸하거나 깜빡일 수 있다. 특히 단계(1545)는 단계(1425, 1445 및 1520)들과 동일하다.
단계(1550)에서, 만약 사용자 상호 작용의 개입 없이 지연 기간이 만료되면, 자동 회전이 시작된다. 상세하게는, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800)에 비어 있는 랙 슬롯(208)의 최대 수를 위치시키도록 자동 회전을 수행한다. 특히, 단계(1450)는 단계(1450)와 동일하다. 따라서, 제 2 내지 제 7 랙 슬롯(208)(즉, "2" 내지 "7"로 표시됨)이 노출되는 반면, 랙 슬롯(208A)은 노출되지 않은 상태로 유지된다. 그러나, 단계(1450)에서와 다르게, 처리된 슬라이드 랙(220A)은 실제로 랙 슬롯(208A) 안에 있다. (예를 들어, 현재 슬라이드 랙(220A)이 처리되고 있는 랙 슬롯(208A)의 외부에 있는 것처럼) 만약 랙 슬롯(208A)이 노출되었다면 작업 흐름에 해로운 결과가 없는 반면에, 작업자의 명령에 응답하거나(예를 들어, 처리된 슬라이드 랙(220A)을 스캐닝 시스템(100)의 노출된 부분(800)으로 회전시키도록 입력 요소를 선택하는 콘솔을 통하여 사용자 상호 작용에 응답하거나) 또는 모든 다른 랙 슬롯(208)들이 처리되기를 기다리는 슬라이드 랙(220)으로 점유되는 경우는 예외로 하면서, 연속적인 로딩을 유지하기 위하여, 프로세싱된 슬라이드 랙(220)은 스캐닝 시스템(100)의 노출된 부분(800)으로 회전하지 않는다.
2.4.4. 노출된, 비어있는 랙 슬롯의 최대화(Maximizing Exposed Empty Rack Slots)
일 실시예에서, 연속적인 로딩의 목적을 달성하도록, 스캐닝 시스템(100)의 노출된 부분(800) 내에 비어 있는 랙 슬롯(208)의 수를 최대화하기 위하여 자동 회전이 사용된다. 이것은 스캐닝 시스템(100)을 사용하는데 필요한 사용자 상호 작용 시간을 최소화시킨다. 상세하게는, 스캐닝 시스템(100)은 그것이 처리할 수 있는 슬라이드 랙(220)의 최대 수를 소비할 준비가 되는 것을 보장한다. 작업자는 오직 스캐닝 시스템(100)에 접근하여 새로운 슬라이드 랙(220)을 비어 있는 랙 슬롯(208)에 배치할 필요성만 있다. 유리하게는, 대부분의 스캐닝 작업 흐름에 대한 새로운 주문을 처리하기 위해 스캐닝 시스템(100)과의 사용자 상호 작용이 거의 필요하지 않다. 그러나, 대안의 실시예에서, 노출된 부분(800) 내에서 비어 있는 랙 슬롯(208)의 수를 최대시키는 대신, 자동 회전은 노출된 부분(800) 내에서 완전히 처리되었던 랙 슬롯(208)을 자동으로 제시하도록 사용될 수 있다.
일 실시예에서, 자동 로더 시스템은 스캐닝 시스템(100)의 노출 된 부분(800) 내에 어느 랙 슬롯(208)이 제시될지를 판단하도록 가중된 합(weighted sum)을 사용한다. 예를 들어, 각각 랙 슬롯(208)에는 값이 할당된다. 가장 낮은 값(예를 들어, -600)은 연관된 랙 슬롯(208)이 비어 있음을 의미한다. 더 높은 값(예를 들어, 0)은 연관된 랙 슬롯(208)이 처리되었던 슬라이드 랙(220)에 의해 점유됨을 의미한다. 가장 높은 값(예를 들어, 1,000,000)은 관련된 랙 슬롯(208)이 처리되고 있는 슬라이드 랙(220)에 의해 점유된다는 것을 의미한다. 노출된 비어 있는 랙 슬롯(208)의 수를 최대화키도록 시도할 때, 프로세서(104)는 가장 작은 전체 합계를 생성하는 인접한 랙 슬롯(208) (예를 들어, 6 개의 인접한 랙 슬롯(208)들의 세트)의 노출 가능한 세그먼트를 계산하고 선택할 것이다. 만약 랙 슬롯(208)들의 다수의 세그먼트들이 동일한 전체 합을 가진다면 (예를 들어, 캐러셀(200)에 있는 모든 랙 슬롯(208)들이 비어 있다면), 프로세서(104)는, 동일한 가장 작은 전체 합을 가진 인접한 랙 슬롯(208)들의 세그먼트들중에서, 가장 낮은 슬롯 번호들을 가진 랙 슬롯(208)들을 선택한다 (예를 들어, "1"로 표시된 제 1 랙 슬롯(208)은 가장 낮은 슬롯 번호를 가지고, "15"로 표시된 제 15 랙 슬롯(208)은 가장 높은 슬롯 번호를 가진다).
도 16a 내지 도 16e 는 일 실시예에 따라서, 자동 회전을 사용하여 스캐닝 시스템(100)의 노출된 부분(800)에 존재하는 인접한 랙 슬롯(208)들의 세그먼트를 식별하는데 사용되도록, 프로세서(104)에 의해 할당된 예시적인 랙 슬롯(208) 값을 도시한다.
도 16a 에서, 모든 랙 슬롯(208)들은 비어 있다. 따라서, 랙 슬롯(208) 마다 동일한 할당 값(예를 들어, -600)을 갖는다. 인접한 랙 슬롯(208)들의 모든 세그먼트는 동일한 전체 합계(예를 들어, 6 x -600 = -4,800)를 가지기 때문에, 프로세서(104)는 전체 슬롯 번호가 가장 낮은 세그먼트(즉, "1" 내지 "6"으로 표시된 제 1 내지 제 6 랙 슬롯(208)으로 이루어진 세그먼트)를 선택하고, 스캐닝 시스템(100)의 노출된 부분(800) 내에 상기 세그먼트를 노출시키도록 캐러셀(200)에서 자동 회전을 수행한다.
도 16b에서, 제 1 및 제 3 랙 슬롯(208) (즉, "1" 및 "3"으로 표시됨)은 모두 슬라이드 랙(220)에 의해 점유된다. 따라서, 제 1 및 제 3 랙 슬롯(208)에는 모두 더 높은 값 (예를 들어, 100)이 할당되는 반면, 랙 슬롯(208)의 나머지에는 가장 낮은 값(예를 들어, -600)을 보유한다. 특히, 작업자가 스캐닝 시스템(100)과의 상호 작용을 중단한 후에 (예를 들어, 작업자가 슬라이드 랙(220)을 제 1 및 제 3 랙 슬롯(208)에 삽입한 후에), 프로세서(104)는 새로 삽입된 모든 슬라이드 랙(220)을 처리 대기열(processing queue)에 더한다. 복수의 새로운 슬라이드 랙(220)이 삽입된 경우, 프로세서(104)는 검출된 순서대로 복수의 새로운 슬라이드 랙(220)을 처리 대기열에 더할 수 있다. 따라서, 예를 들어, 만약 작업자가 슬라이드 랙(220)을 제 1 랙 슬롯(208)에 삽입하고, 다음에 슬라이드 랙(220)을 제 3 랙 슬롯(208)에 삽입한다면, 제 1 랙 슬롯(208)에 있는 슬라이드 랙(220)은 제 1 위치에서 처리 대기열에 더해질 것이고(즉, 이것이 활성 슬라이드 랙이 될 것이다), 다음에 제 3 랙 슬롯(208)에 있는 슬라이드 랙(220)은 제 2 위치에 있는 처리 대기열에 더해질 것이다(즉, 이것은 다음 활성 슬라이드가 될 것이다).
도 16c 에서, 제 1 랙 슬롯(208)으로부터의 슬라이드 랙(220)은 현재 처리되고있는 반면, 제 3 랙 슬롯(208)에 있는 슬라이드 랙(220)은 처리를 대기한다. 따라서, 제 1 랙 슬롯(208)에는 가장 높은 값(예 : 1,000,000)이 할당되고, 제 3 랙 슬롯(208)은 중간 값(예 : 100)을 유지하고, 나머지 랙 슬롯(208)은 가장 낮은 값(예 : -600)을 유지한다. 이러한 경우, 다수의 세그먼트들은 동일한 최소의 합(sum)(예 : -4,800)을 가진다. 따라서, 프로세서(104)는 전체 슬롯 번호가 가장 낮은 세그먼트(즉, "4" 내지 "9" 로 표시된 제 4 내지 제 9 랙 슬롯(208)으로 이루어진 세그먼트)를 선택하고, 스캐닝 시스템(100)의 노출된 부분(800)에 상기 세그먼트를 노출하기 위해 캐러셀(200)에서 자동 회전을 수행한다. 특히, 이러한 자동 회전은 제 1 랙 슬롯(208)의 슬라이드 랙(220)이 처리되는 동안 수행되는데, 이는 제 1 랙 슬롯(208)이 더 이상 자동 로더 시스템의 랙 로딩 및 언로딩 메커니즘과 정렬되지 않음을 의미함에도 불구하고 그렇게 된다.
도 16d에서, 모든 랙 슬롯(208)이 점유되고, 제 2 랙 슬롯(208)(즉, "2"로 표시됨)으로부터의 슬라이드 랙(220)이 처리되고, 제 3 랙 슬롯(208)(즉, "3"으로 표시됨)으로부터의 슬라이드 랙(220)은 처리를 완료한다. 따라서, 제 2 랙 슬롯(208)에는 가장 높은 값(예 : 1,000,000)이 할당되고, 제 3 랙 슬롯(208)에는 낮은 값(예 : 0)이 할당되고, 나머지 랙 슬롯(208)에는 중간 값(예 : 100)이 할당된다. 따라서, 제 3 내지 제 8 랙 슬롯(208) (즉, "3" 내지 "8" 로 표시됨)으로 구성된 세그먼트는 가장 낮은 전체 합계를 갖는다. 따라서, 프로세서(104)는 캐러셀(200)에서 자동 회전을 수행하여 스캐닝 시스템(100)의 노출된 부분(800) 내에 이 세그먼트를 노출시킨다.
도 16e 에서, 모든 랙 슬롯(208)이 점유되고, 제 2 랙 슬롯(208)으로부터의 슬라이드 랙(220)(즉, "2"로 표시됨)이 처리되고, 제 1 랙 슬롯(208)의 슬라이드 랙(220)(즉, "1"로 표시됨)이 처리를 완료한다. 따라서, 제 2 랙 슬롯(208)에는 가장 높은 값(예 : 1,000,000)이 할당되고, 제 1 랙 슬롯(208)에는 낮은 값(예 : 0)이 할당되고, 나머지 랙 슬롯(208)에는 중간 값(예 : 100)이 할당된다. 따라서, 제 11 내지 제 1 랙 슬롯(208)(즉, "11", "12", "13", 14", "15" 및 "1"로 표시됨)으로 이루어진 세그먼트는 가장 낮은 전체 합(sum)을 가진다. 따라서, 프로세서(104)는 캐러셀(200)에서 자동 회전을 수행하여 스캐닝 시스템(100)의 노출된 부분(800) 내에 이 세그먼트를 노출시킨다.
특히, 일 실시예에서, 슬라이드 랙(220)이 현재 처리되고 있는 랙 슬롯(208)은 스캐닝 시스템(100)의 노출된 부분(800)에 결코 노출되지 않을 것이다. 이러한 요건이 항상 충족되는 것을 보장하기 위해, 프로세서(104)는 양방향으로 캐러셀(200)을 회전시키도록 구성될 수 있다. 예를 들어, 프로세서(104)가 도 16b 에 도시된 위치로부터 도 16c 에 도시된 위치로 캐러셀(200)을 회전시킬 때. 이것은 캐러셀(200)을 시계 방향으로 회전시킬 수 있다. 그러나, 프로세서(104)가 도 16d 에 도시된 위치로부터 도 16e에 도시된 위치로 캐러셀(200)을 회전시킬 때, 슬라이드 랙(220)이 처리되는 제 2 랙 슬롯(208)(즉, "2"로 표시됨)의 노출을 회피하도록 캐러셀(200)을 반 시계 방향으로 회전시킬 수 있다.
2.4.5. 캐러셀 드리프트 보정(Carousel Drift Correction)
벨트(210)와 벨트 요부(belt recess, 204) 사이의 마찰을 이용하여 캐러셀(200)을 회전시키는 기계적 한계로 인해, 시간이 지남에 따라, 캐러셀(200)의 물리적 위치는 캐러셀의 구동 모터에 의해 보고되는 인코더 위치에 대해 드리프트(drift) 될 수 있다. 일 실시예에서, 이러한 기계적 드리프트를 보상하기 위해, 임의의 주어진 시간에 캐러셀(200)에 의해 이동된 총 회전 거리를 추적하도록 카운터(counter)가 구현된다. 이러한 카운터는 총 회전 거리가 미리 결정된 쓰레숄드 값을 초과하는 시기를 결정하는데 사용될 수 있다. 프로세서(104)는 상기 카운터를 모니터링 할 수 있고, 카운터가 미리 결정된 쓰레숄드 값을 초과할 때 캐러셀 드리프트 보정 로직(carousel-drift-correction logic)을 실행한다. 캐러셀 드리프트 보정 로직은 임의의 활성 회전 동작(active rotational operation)으로부터 중단될 수 있고, 위치 인코더(position encoder)가 정확하게 유지됨을 보장하기 위해 캐러셀(200)에서 원점 복귀 프로세스(예를 들어, 도 13의 프로세스(1300)에 예시됨)를 수행 할 수 있다. 캐러셀 드리프트 보정 로직을 완료한 후에, 프로세서는 이동 모션 프로파일(movement motion profile)을 다시 로딩하고, 중지 된 지점으로부터의 그 어떤 중단된 회전 작동이라도 완료할 수 있다.
2.5. 능동 회전(Active Rotation)
자동 회전과 대조적으로, 능동 회전은 작업자가 캐러셀(200)에 회전을 명령하는 경우를 의미한다. 이러한 명령은 일반적으로 콘솔(예를 들어, 터치 동작에 의해 선택될 수 있는 그래픽 캐러셀 표현(1210)과 같은, 입력 요소를 디스플레이하는 터치 패널 디스플레이)을 통해 수신된다. 그러나, 능동 회전은 기능적으로 노출될 수 있어서(예를 들어, 애플리케이션 프로그래밍 인터페이스(API)를 통해 노출될 수 있어서), 그러한 명령은 원격 테스트 유틸리티, 명령 라인 인터페이스 및/또는 유사한 것에 통합될 수도 있다.
캐러셀(200)을 능동적으로 회전시키는 주된 이유는 스캐닝 시스템(100)의 노출된 부분(800) 내에서 현재 접근할 수 없는 슬라이드 랙(220)을 회수하기 위한 것이다. 이러한 상황에 대하여 두 가지의 일반적인 사용 사례들이 있다. 제 1 사용 사례에서, 사용자는 현재 처리되고 있지 않은 슬라이드 랙(220)을 회전시킬 수 있다(즉, 비 능동(non-active) 슬라이드 랙(220)의 회전). 제 2 사용 사례에서, 사용자는 현재 처리중인 슬라이드 랙(220)을 회전시킬 수 있다(즉, 능동 슬라이드 랙(220)의 회전). 두 사용 사례는 아래에서 자세히 설명된다.
2.5.1. 능동 랙(active rack)
능동 슬라이드 랙(220)의 능동적 회전은 작업자가 능동 슬라이드 랙(220)을 회수하기 위해 능동 슬라이드 랙(220)의 처리를 중단(예 : 활성 슬라이드 랙(220) 내의 유리 슬라이드(114)의 스캐닝 중단)하도록 선택했음을 의미한다. 이 경우, 액티브 슬라이드 랙(220)은 오토로더 시스템의 리프트 내에(예를 들어, 슬라이드 랙(220)의 로딩 및 언로딩을 위해)위치될 수 있다. 따라서, 능동 슬라이드 랙(220)을 회수하기 위해, 스캐닝 시스템(100)은 스캐닝 프로세스를 적절하게 중지하고, 스캐닝되고 있는 유리 슬라이드(114)를 스테이지(112)에서 이탈시켜 활성 슬라이드 랙(220)으로 언로딩하고, 능동 슬라이드 랙(220)을 다시 캐러셀(200)로 언로딩하고, 상기 슬라이드 랙(220)이 점유하는 랙 슬롯(208)을 노출시키기 위해 캐러셀(200)을 능동적으로 회전시킨다.
도 17a-17c는 일 실시예에 따른 능동 슬라이드 랙(220)의 능동 회전을 도시한다. 도 17a-17c 는 단계(1705-1730)들 각각에 대한 그래픽 캐러셀 표현(1210) 및 캐러셀(200)의 상태를 예시한다.
단계(1705)에서, 작업자는 그래픽 캐러셀 표현(1210)에서 제 3 랙 슬롯(208)의 그래픽 표현(즉, "3"으로 표시됨)을 선택하고, 다음에 그래픽 캐러셀 표현(1210)의 중심에서 회전 입력 요소를 선택함으로써 능동 회전을 개시한다.
단계(1710)에서, 캐러셀 스크린은 작업자에게 능동 회전의 진행 여부를 확인하게 한다. 예를 들어, 캐러셀 스크린은, 능동 회전을 확인하기 위한 입력 요소 및 능동 회전의 명령을 취소하기 위한 입력 요소로써, 그래픽 캐러셀 표현(1210) 위에 다이알로그 프레임(dialogue frame)을 오버레이(overlay) 할 수 있다.
단계(1715)에서, 만약 프로세서(104)가 다이알로그 프레임을 통해 작업자로부터 능동 회전을 수행하라는 확인을 수신하면, 능동 회전을 시작하기 전에 임의의 스캐닝이 완료될 때까지 대기할 것이다. 예를 들어, 만약 스캐닝 시스템(100)이 현재 유리 슬라이드(114)를 스캐닝하고 있다면, 프로세서(104)는 스캐닝이 완료될 때까지 기다리고, 다음에 유리 슬라이드(114)를 슬라이드 랙(220)으로 다시 언로딩한다. 즉, 능동 회전을 수행하라는 명령은 임의의 능동 스캐닝이 완료 될 때까지 지연될 수 있다. 이러한 지연 동안에, 작업자에게 현재 유리 슬라이드(114)가 스캐닝을 완료할 것을 기다리도록 통지하기 위해 그래픽 캐러셀 표현(1210) 위에 메세지 프레임(message frame)을 오버레이할 수 있다.
단계(1720)에서, 임의의 능동 스캐닝이 완료되면, 프로세서(104)는 스캐닝된 유리 슬라이드(114)를 스테이지(112)로부터 슬라이드 랙(220)으로 언로딩하도록 자동 로더 시스템을 제어한다. 유리 슬라이드(114)가 슬라이드 랙(220)으로 언로딩된 후에, 프로세서(104)는 미리 결정된 시간(예를 들어, 3 초) 동안 회전 아이콘을 디스플레이하도록 콘솔을 제어할 것이다. 또한, 프로세서(104)는 스캐닝 시스템(100)의 노출된 부분(800)에서 LED(1100)를 제어하여 미리 결정된 시간 동안 및/또는 여러 번(예를 들어, 3 회) 알림 색상(notification color)(예를 들어, 노란색)으로 깜박일 수 있다.
단계(1725)에서, 사용자 상호 작용 없이 미리 정해진 시간이 경과한 후, 프로세서(104)는 슬라이드 랙(220)을 캐러셀(200)의 랙 슬롯(208)으로 언로딩한다. 일단 슬라이드 랙(220)이 언로드되면, 회전 아이콘은 일정 시간(예 : 3 초) 동안 디스플레이될 수 있으며, LED(1100)는 일정 시간 및/또는 여러 번(예 : 3 초) 알림 색상으로 깜박일 수 있다. 그 후, 사용자 상호 작용 없이 미리 결정된 시간이 경과된 후, 프로세서(104)는 캐러셀(200)의 능동 회전을 개시한다.
단계(1730)에서, 능동 회전이 수행되어 제 3 랙 슬롯(208)을 스캐닝 시스템(100)의 노출된 부분(800)으로 회전시킴으로써, 작업자가 접근할 수 있도록 한다. 일 실시예에서, 일단 제 3 랙 슬롯(208)이 노출되었다면, 제 3 랙 슬롯(208)과 연관된 LED(1100)는 색상(예를 들어, "스캐닝 대기" 상태와 연관된 색상, 예를 들어, 블루)에서 펄스를 일으켜서 작업자가 방금 능동 회저시킨 제 2 랙 슬롯(208)의 위치를 작업자에게 통지한다. 도시되지 않았을지라도, 능동 회전의 이후 및/또는 회전하는 동안, 그래픽 캐러셀 표현(1210)은 캐러셀(200)에서의 각각의 랙 슬롯(208)의 새로운 위치들을 반영하도록 업데이트될 수 있다.
2.5.2. 비 능동 랙(Non-Active Rack)
비 능동 슬라이드 랙(220)의 능동 회전은, 현재 처리되지 않고 스캐닝 시스템(100)의 노출된 부분(800) 내에 존재하지 않는 비 능동(non-active) 슬라이드 랙(220)을 회수하기로 작업자가 선택했음을 의미한다. 즉, 작업자는 스캐닝 시스템(100)의 내부에 있는 캐러셀(200)에 위치된 비활성 슬라이드 랙(220)의 회수를 희망한다. 일반적으로, 비 능동 슬라이드 랙(220)은 캐러셀(200) 내에 있는 임의의 슬라이드 랙(220)으로서, 즉, 처리를 위해 캐러셀(200)로부터 로딩되지 않은 것이다. 비 능동 슬라이드 랙(220)은, 처리 대기 중이지만 노출된 부분(800)에 있는 비어 있는 랙 슬롯(208)의 최대 개수를 제공하는 자동 회전의 기능 때문에 스캐닝 시스템(100) 내부에 있는 슬라이드 랙(220)일 수 있거나, 또는 처리되었던 슬라이드 랙일 수 있다.
도 18은 일 실시예에 따른, 비 능동(non-active) 슬라이드 랙(220)의 능동 회전을 위한 프로세스(1800)를 도시한다. 단계(1810)에서, 프로세서(104)는 예를 들어 스캐닝 시스템(100)의 콘솔의 그래픽 사용자 인터페이스에서 그래픽 캐러셀 표현(1210)을 통해 비 능동 슬라이드 랙220)의 선택을 수신한다. 단계(1820)에서, 비 능동 슬라이드 랙(220)이 선택된 후, 프로세서(104)는 그래픽 사용자 인터페이스 내의 회전 입력 요소(예를 들어, 회전 아이콘)의 추가 선택을 수신한다.
단계(1830)에서, 프로세서(104)는 캐러셀(200)이 잠겨 있는지 여부를 판단한다. 예를 들어, 자동 로더 시스템은 스캐닝 시스템(100), 유리 슬라이드(114), 작업자 및/또는 유사한 것의 구성 요소에 대한 손상을 방지하기 위해 특정 상황에서 자동으로 캐러셀(200)을 잠글 수 있다. 예시적인 상황은, 예를 들어 광 커튼(900) 또는 핀치 포인트 센서(810)에 의하여, 노출된 부분(800) 내에서 장애가 검출된 경우일 수 있다. 캐러셀(200)이 잠긴 경우(즉, 단계(1830)에서 "예" 인 경우), 프로세서(104)는 캐러셀(200)이 잠금 해제될 때까지 대기한다. 일 실시예에서, 작업자는 장애(obstruction)에 대해 경고를 받을 수 있다(예를 들어, 스캐닝 시스템(100)의 콘솔의 그래픽 사용자 인터페이스의 경고 다이알로그 프레임, 오디오 경고 등을 통해 받을 수 있다).
일단 캐러셀이 잠금 해제되면(즉, 단계(1830)에서 "아니오"), 프로세서(104)는 단계(1840)에서 하나 이상의 임박한 회전 통지(rotation notification)를 제공한다. 본 명세서의 다른 곳에서 설명된 바와 같이, 임박한 회전 통지는, 캐러셀(200)의 회전을 시작하기 전에, 미리 결정된 시간 윈도우 동안(예를 들어 3 초 동안), 깜빡이는 LED(1100) 및/또는 그래픽 사용자 인터페이스의 캐러셀 스크린상의 그래픽 캐러셀 표현(1210) 대신에, 회전 아이콘을 표시하는 것을 포함할 수 있다.
단계(1850)에서, 미리 결정된 시간 윈도우가 지난 후, 프로세서(104)는 능동 회전을 시작하여 단계(1810)에서 선택된 비 능동 슬라이드 랙(220)에 의해 점유된 랙 슬롯(208)을 노출된 부분(800)(예를 들어 , 스캐닝 시스템(100)의 전방)으로 회전시킨다. 능동 회전이 완료된 후, 작업자는 노출된 부분(800)에 도달하여 랙 슬롯(208)으로부터 선택된 슬라이드 랙(220)을 추출할 수 있다.
2.6. 에러 처리(Error Handling)
이제 연속적인 로딩 작업 흐름에 대한 에러 처리(error handling)에 관하여 설명한다. 연속적인 로딩의 에러 처리는, 노출 된 부분(800)과 스캐닝 시스템(100)의 외부 환경 사이의 경계를 가로 지르는 대상물을 검출하는 광 커튼(900) 및, 노출된 부분(800)의 단부들에서 캐러셀(200)과 스캐닝 시스템(100)의 프레임 사이에 있는 핀치 포인트(pinch point)에서 장애물을 검출하는 핀치 포인트 센서(810) 모두에 의존할 수 있다.
2.6.1. 차단된 광 커튼 (휴지(rest) 상태의 캐러셀)
캐러셀(200)이 휴지(rest) 상태에 있는 동안, 광 커튼(900)의 트리거링(trigerring)(즉, 노출된 부분(800)으로의 침입(intrusion)을 나타내는 하나 이상의 송신기/수신기 쌍(920/925) 사이의 혼란(disruption)의 검출)은, 작업자가 캐러셀(200)과 상호 작용하고 있음을 나타낼 수 있다. 따라서, 광 커튼(900)이 트리거링되는 한, 캐러셀(200)을 회전시키는 것은 안전하지 않다고 가정한다. 만약 광 커튼(900)이 장기간에 걸쳐 트리거링 된다면, 이것은 슬라이드 랙(220) 또는 상기 슬라이드 랙(220)의 유리 슬라이드(114)가 적절하게 안착되지 않음을 나타낼 수 있다. 부적절하게 안착된 슬라이드 랙(220) 또는 유리 슬라이드(114)는 캐러셀(200)이 스캐닝 시스템(100)의 내부로 회전할 때 캐러셀(200)의 회전을 방해할 위험성이 있다.
일 실시예에서, 프로세서(104)는 광 커튼(900)이 얼마나 오랫동안 연속적으로 트리거링 되는지를 기록하기 위해 타이머(timer)를 사용한다. 만약 광 커튼(900)이 미리 결정된 시간 쓰레숄드를 초과하여 트리거링 되었다면, 사용자 이벤트(user event)는 랙 상태(rack state)에서 설정되어 스캐닝 시스템(100)의 콘솔의 그래픽 사용자 인터페이스상의 다이알로그 프레임을 트리거링할 수 있다. 이러한 다이알로그 프레임은 광 커튼(900)이 차단되고, 장애가 제거될 때까지 캐러셀(200)이 회전하지 않을 것임을(예를 들어, 텍스트 및/또는 이미지를 통해) 나타낼 수 있다. 다이알로그 프레임은 장애물이 제거될 때까지 그래픽 사용자 인터페이스에 유지될 수 있다. 일단 장애물이 제거되면, 프로세서(104)는 콘솔로부터 다이알로그 프레임을 제거할 수 있다.
2.6.2. 차단된 광 커튼(움직이는 캐러셀)
캐러셀(200)이 움직이는 동안, 광 커튼(900)은 안전 센서로서 이용된다. 캐러셀(200)이 회전하는 동안 광 커튼(900)이 트리거링되면, 캐러셀(200)은 다음 인덱스 위치로 적절하게 회전하고, 다음에 자동으로 회전을 정지할 수 있다. 일단 캐러셀(200)이 정지되면, 전술 한 바와 같이 캐러셀이 휴지 상태에 있는 동안 광 커튼(900)이 차단되는 때에 대한 로직(logic)이 사용될 수있다.
2.6.3. 차단된 핀치 포인트 센서(휴지 상태의 캐러셀)
캐러셀(200)이 휴지 상태에 있을 때, 핀치 포인트 센서(810)의 트리거링은 자동 로더 시스템에 대한 제어 로직의 소프트웨어 상태에 충격을 주지 않는다. 따라서, 핀치 포인트 센서(810)가 트리거링되고 캐러셀(200)이 휴지 상태에 있는 동안 자동 로더 시스템의 거동은, 캐러셀(200)이 휴지 상태인 동안 광 커튼(900)이 트리거링 될 때 자동 로더 시스템의 거동과 동일할 수 있다(예를 들어, 장애물이 제거 될 때까지 작업자에게 장애물을 알리기 위해 콘솔의 그래픽 사용자 인터페이스에서 다이알로그 프레임을 표시).
2.6.4. 차단된 핀치 포인트 센서(움직이는 캐러셀)
도 19 는 일 실시예에 따라서 캐러셀(200)의 움직임 동안 핀치 포인트 센서(810)가 사용되는 프로세스(1900)를 예시한다. 단계(1910)에서, 캐러셀 모터가 구동되어 캐러셀(200)을 회전시킨다. 이것은 여기의 다른 곳에서 설명된 바와 같이 자동 회전 또는 능동 회전일 수 있다.
캐러셀(200)의 회전 동안, 핀치 포인트 센서(810)는 캐러셀(200)의 핀치 포인트(pinch point)를 모니터링할 수 있다. 핀치 포인트 센서(810)가 트리거링되지 않는 한 (즉, 단계(1920)에서 "아니오"), 캐러셀(200)의 회전이 계속될 수 있다. 그러나, 만약 핀치 포인트 센서(810)가 트리거링되면 (즉, 단계(1920)에서 "예"), 캐러셀 모터는 단계(1930)에서 즉시 제동된다.
캐러셀(200)이 움직이고있는 동안, 핀치 포인트 센서(810)의 트리거링은 잠재적인 안전상의 위험을 나타낸다. 일 실시예에서, 물리적 와이어는 핀치 포인트 센서(810A 및 810B) 사이에서 캐러셀 모터를 위한 브레이크 라인(brake line)으로 라우팅(routing)된다. 따라서, 핀치 포인트 센서(810)의 활성화 (즉, 단계(1920)에서 "예")는, 캐러셀(200)이 인덱싱된 위치에 있는지 여부에 관계없이, 단계(1930)에서 캐러셀 모터에 대한 즉각적인 정지를 트리거링함으로써 캐러셀(200)을 트리거링할 것이다. 이러한 거동은 하드웨어에 의해 제어되기 때문에, 이러한 실시예에서는 소프트웨어를 사용하여 조정될 없다.
단계(1940)에서 핀치 포인트 에러 이벤트(pinch point error event)가 설정된다. 다음에, 오토 로더 시스템은 단계(1950)에서 핀치 포인트 센서(810)가 클리어되는 것을 기다린다. 만약 핀치 포인트 센서(810)가 클리어되면 (즉, 단계(1950)에서 "예"), 핀치 포인트 에러 이벤트는 단계(1960)에서 클리어된다. 그러나, 단계(1930)에서의 비상 제동은 캐러셀(200)의 축에서 인덱싱된 위치의 상실을 초래할 수있다. 따라서, 단계(1970)에서, (예를 들어, 도 13의 프로세스(1300)와 관련하여) 본 명세서의 다른 곳에서 설명된 원점 복귀 과정(homing process)는 캐러셀(200)에서 수행되어 그것의 베어링(bearing)을 재확립한다. 일단 캐러셀(200)이 원점 복귀되면, 단계(1910)에서 회전은 계속 될 수 있다.
핀치 포인트 센서(810)가 클리어되지 않는 한 (즉, 단계(1950)에서 "아니오"), 프로세서(104)는 단계(1980)에서 치명적인 에러 이벤트(fatal error event)를 트리거링할지 여부를 판단할 수 있다. 단계(1980)의 실시예에서, 프로세서(104)는 핀치-포인트 에러 이벤트가 계속해서 설정되었던 시간의 길이를 쓰레숄드 시간(threshold time)과 비교한다. 만약 핀치 포인트 에러 이벤트가 연속적으로 설정되는 시간 길이가 쓰레숄드 시간보다 짧으면 (즉, 단계(1980)에서 "아니오"), 프로세서(104)는 핀치 포인트 센서(810)가 클리어되도록 계속 대기한다. 그렇지 않으면, 만약 핀치 포인트 에러 이벤트가 지속적으로 설정된 시간 길이가 쓰레숄드 시간을 초과하면 (즉, 단계(1980)에서 "예"), 프로세서(104)는 작업 흐름을 계속할 수 없기 때문에 단계(1990)에서 치명적 에러 상태를 트리거링한다.
일 실시예에서, 만약 스캐닝 시스템(100)이 단계(1990)에서 치명적인 에러 상태에 들어가면, 작업자가 장애를 제거하고 스캐닝 시스템(100)을 다시 시작할 때까지 이러한 상태에서 유지될 것이다. 치명적인 에러 상태에서, 프로세서(104)는 모든 LED(1100)를 제어하여 에러 칼러(error color)(예를 들어, 빨간색)으로 깜박이고 스캐닝 시스템(100)의 콘솔의 그래픽 사용자 인터페이스에 에러 프레임(error frame)을 표시하여 작업자에게 치명적인 에러를 알릴 수 있다.
2.7. 이중 상태 장치(Dual State Machine)
일 실시예에서, 스캐닝 시스템(100)의 프로세서(104)는 이중 상태 장치(Dual State Machine)에 따라 자동 로더 시스템을 제어한다. 즉, 자동 로더 시스템의 제어는 두 부분으로 나뉘어진다: (1) 전방 단부 상태 장치(front end state machine, FSM)는 자동 로더 시스템의 전방 단부 구성 요소들 (예: 캐러셀(200)_를 담당하고, 사용자는 그것과 상호 작용(interact)한다; (2)후방 단부 상태 장치(back end state machine, BSM)는 자동 로더 시스템의 후방 단부 구성 요소들(예를 들어, 푸쉬/풀 조립체(300))를 담당하며, 이것은 전방 단부 구성 요소들로부터 슬라이드 랙(220)들을 로딩 및 언로딩하고, 전방 단부 구성 요소들로부터 회수된 슬라이드 랙(220)을 처리한다(예를 들어 유리 슬라이드(114)를 슬라이드 랙(220)으로부터 스테이지(112)로 및 스테이지(112)에서 이탈되게 로딩 및 언로딩함). 따라서, 전방 단부 상태 장치는 스캐닝 시스템(100)의 다른 전방 단부 구성 요소들 및 캐러셀(200)과 관련하여 위에서 설명된 모터(예: 캐러셀의 구동 모터) 및 센서(예:핀치 포인트 센서(810), 광 커튼(900) 등)를 제어할 수 있다. 유사하게, 후방 단부 상태 장치는, 다른 후방 단부 구성 요소들뿐만 아니라, 언로딩된 슬라이드 랙(220)과 스테이지(112) 사이에서 유리 슬라이드(114)를 움직이고 캐러셀(200)로부터 슬라이드 랙(220)을 로딩 및 언로딩하는데 필요한 모터 및 센서를 제어 할 수 있다.
도 20 은 일 실시예에 따른 이중 상태 장치(2000)에서의 데이터 흐름을 도시한다. 위에서 언급한 바와 같이, 이중 상태 장치는 전방 단부 상태 장치(2010)와 후방 단부 상태 장치(2020)를 포함한다. 스캐닝 시스템(100)의 전방 단부 및 후방 단부 모두는 서로 독립적으로 작동하기 때문에, 전방 단부 상태 장치(2010) 및 후방 단부 상태 장치(2020)는 자율적으로 작동할 수 있어야 한다. 따라서, 후방 단부가 캐러셀(200)로부터 언로딩되었던 슬라이드 랙(220)으로부터 유리 슬라이드(114)를 처리하는 동안, 운영자는 언제든지 전방 단부와(예를 들어, 그래픽 사용자 인터페이스를 통해 특정된 슬라이드 랙(220)이 노출된 부분(800)에 나타나도록 명령하고, 슬라이드 랙(220)을 삽입 또는 제거하는 등) 상호 작용할 수 있다 .
그러나, 후방 단부 상태 장치(2020)는 슬라이드 랙(220)을 처리하기 위해 전방 단부 구성 요소들에 명령을 하고 전방 단부 구성 요소들의 상태를 검색할 수 있어야 한다. 따라서, 예시된 실시예에서, 전방 단부 상태 장치(2010)와 후방 단부 상태 장치(2020) 사이에 통신 채널이 존재한다. 상세하게는, 예시된 바와 같이, 전방 단부 상태 장치(2010)는 전방 단부 상태를 후방 단부 상태 장치(2020)에 제공하도록 구성되고, 후방 단부 상태 장치(2020)는 전방 단부 상태 장치(2010)에 전방 단부 명령을 하도록 구성된다.
예시된 실시예에서, 전방 단부 상태 장치(2010)는 전방 단부 모터(예를 들어, 캐러셀의 구동 모터) 및 센서(예를 들어, 핀치 포인트 센서(810), 광 커튼(900) 등)로부터, 상태 정보 뿐만 아니라 입력을 수신한다. 또한, 전방 단부 상태 장치(2010)는 후방 단부 상태 장치(2020) 및 스캐닝 시스템(100)의 콘솔(예를 들어, 그래픽 사용자 인터페이스를 표시하는 터치 패널 디스플레이) 모두로부터 전방 단부 명령들을 수신하도록 구성된다. 충돌하는 전방 단부 명령이 후방 단부 상태 장치(2020)와 사용자 인터페이스 모두로부터 동시에 또는 같은 시기에 수신되는 경우, 전방 단부 상태 장치(2020)는 우선 순위 및 충돌 해결 메커니즘(priority and conflict-resolution mechanism)을 구현할 수 있다. 우선 순위 및 충돌 해결 메커니즘은, 예를 들어 전방 단부 명령의 소스(source) 및/또는 전방 단부 명령의 유형을 기반으로, 충돌하는 전방 단부 명령이 처리되는 순서(또는 폐기할 프런트 엔드 명령)를 판단할 수 있다.
그 입력으로부터, 전방 단부 상태 장치(2010)는 전방 단부 구성 요소(예를 들어, 캐러셀의 구동 모터) 및/또는 스캐닝 시스템(100)의 콘솔중 하나 이상으로의 출력들의 세트를 판단한다. 또한, 전방 단부 상태 장치(2010)는 전방 단부 상태 및, 전방 단부의 다음 상태를 판단한다. 전방 단부 상태 및, 다음 상태는 메모리(106)(또는 하드웨어에 있다면, D 플립 플롭(flip-flop)에 저장될 수 있다. 위에서 언급한 바와 같이, 전방 단부 상태는 후방 단부 상태 장치(2020)와 통신될 수 있다.
후방 단부 상태 장치(2020)는 전방 단부 상태 장치(2010)와 유사한 방식으로 작동하여, 후방 단부 모터 및 센서로부터 입력을 수신한다. 그러나, 후방 단부 상태 장치(2020)는 스캐닝 워크 플로우를 구현하기에 적절하게 스캐닝 시스템(100)으로부터 그것의 명령(즉, 후방 단부 명령)을 수신하고, 또한 전방 단부 상태 장치(2010)로부터 전방-단부 상태를 수신한다. 후방 단부 상태 장치(2020)는 전방 단부 상태 장치(2010)로부터 수신된 전방 단부 상태에 작용하여, 전방 단부 상태 장치(2010)로 송신되는 전방 단부 명령을 출력한다.
도 21 은 스캐닝 작업 흐름(2130)(예를 들어, 프로세서(104)에 의해 구현 됨), 후방 단부 상태 장치(2020), 전방 단부 상태 장치(2010), 스캐닝 시스템(100)의 콘솔(2140)(예를 들어, 그래픽 사용자 인터페이스를 표시하는 터치 패널 디스플레이를 포함), 작업자 사이의 예시적인 높은 레벨의 상호 작용(high level interaction)을 나타낸다. 연속적인 로딩 작업 흐름의 예시적인 시나리오에서, 스캐닝 작업 흐름(scanning workflow, 2130)은 특정 유리 슬라이드(114)를 스캔해야만 한다고 결정했다고 가정한다. 상호 작용의 예는 다음과 같다.
(1) 스캐닝 작어 흐름(2130)는 후방 단부 상태 장치(2020)에 명령하여 스캐닝되어야 하는 슬라이드(114)를 로딩하고, 명령이 완료될 때까지 대기한다.
(2) 만약 후방 단부 상태 장치(2020)가 현재 작업을 수행하고 있다면, 스캐닝되어야 하는 슬라이드(114)를 로딩하라는 스캐닝 작업 흐름(2130)으로부터의 명령을 처리하기 전에 작업을 완료할 것이다. 다른 한편, 만약 후방 단부 상태 장치(2020)가 현재 작업을 수행하고 있지 않으면, 명령에 즉시 응답한다.
(3) 일단, 스캐닝되어야 하는 슬라이드(114)를 하우징하는 슬라이드 랙(220)이 제거될 수 있도록 전방 단부(예를 들어, 캐러셀(200))을 위치시킬 필요가 있는 지점에 후방 단부 상태 장치(2020)가 도달하면, 전방 단부 상태 장치(2010)에게 필요한 위치 선정을 수행하라는 명령을 하고, 상기 명령이 완료되기를 대기한다.
(4) 만약 전방 단부 상태 장치(2010)가 현재 사용자 상호 작용(user interaction)에 기반하여 작업을 수행하고 있다면, 후방 단부 상태 장치(2020)로부터의 명령에 응답하기 전에 해당 사용자 상호 작용이 완료되기를 대기한다. 다른 한편으로, 만약 전방 단부 상태 장치(2010)가 사용자 상호 작용을 기반으로 작업을 현재 수행하지 않는다면, 명령에 즉시 응답할 것이다.
(5) 만약, 예를 들어 전방 단부가 움직이고 있으면서 작업자가 슬라이드 랙(220)을 전방 단부로부터제거하려고 시도한다면, 전방 단부 상태 장치(2100)는 후방 단부 상태 장치(2020)로부터의 명령의 처리를 일시적으로 중단할 수 있다. 그러나, 일단 사용자 상호 작용이 완료되면, 전방 단부 상태 장치(2010)는 후방 단부 상태 장치(2020)로부터의 명령을 계속 처리한다. 보통의 상황에서, 전방 단부 상태 장치(2010)는, 보통의 사용자 상호 작용에 응답하기 전에 후방 단부 상태 장치(2020)로부터의 명령을 완전히 처리할 때까지, 기다린다.
(6) 일단 전방 단부 상태 장치(2010)가 후방 단부 상태 장치(2020)로부터의 명령을 처리했다면, 전방 단부 상태를 후방 단부 상태 장치(2020)에 통신하고, 보통의 작동(normal operation)을 재개할 것이다.
(7) 후방 단부 상태 장치(2020)는 전방 단부 상태 장치(2010)로부터의 상기 전방 단부 상태를 수신하고, 스캐닝 작업 흐름(2130)으로부터 수신된, 스캐닝할 슬라이드(114)를 로딩하라는 명령의 처리를 완료한다.
(8) 일단 후방 단부 상태 장치(2020)가 명령을 완전히 처리하였다면,이러한 상태는 스캐닝 작업 흐름(2130)으로 통신될 것이다.
(9) 스캐닝 작업 흐름(2130)은 후방 단부 상태 장치(2020)로부터 이러한 상태 업데이트(status update)를 수신하고, 로딩된 슬라이드(114)의 처리를 계속할 것이다.
개시된 실시예에 대한 상기 설명은 당업자가 본 발명을 이용하거나 구현할 수 있도록 제공된다. 이들 실시예에 대한 다양한 수정은 당업자에게 명백할 것이며, 여기에 설명된 일반적인 원리는 본 발명의 사상 또는 범위를 벗어나지 않고 다른 실시예에 적용될 수 있다. 따라서, 본 명세서에 제시된 설명 및 도면은 본 발명의 현재 바람직한 실시예를 나타내며, 따라서 본 발명에 의해 광범위하게 고려되는 주제를 대표하는 것으로 이해되어야 한다. 또한, 본 발명의 범위는 당업자에게 명백할 수 있는 다른 실시예를 완전히 포함하고, 따라서 본 발명의 범위가 제한되지 않는다는 점이 이해된다.
"A, B 또는 C 중 적어도 하나", "A, B 또는 C 의 하나 이상", "A, B 및 C 중 적어도 하나", "A, B 및 C 중 하나 이상" 및 "A, B, C 또는 이들의 그 어떤 조합"과 같이, 여기에 설명된 조합은 A, B 및/또는 C 의 그 어떤 조합이라도 포함하며, A 의 다수, B 의 다수 또는 C 의 다수를 포함할 수 있다. 상세하게는, "A, B 또는 C 중 적어도 하나", "A, B 또는 C 의 하나 이상", "A, B 및 C 중 적어도 하나", "A, B 및 C 중 하나 이상" 및 "A, B, C 또는 이들의 그 어떤 조합"은, 오직 A, 오직 B, 오직 C, A 및 B, A 및 C, B 및 C, 또는 A 및 B 및 C 일 수 있고, 그 어떤 상기 조합이라도 그것의 성분 A, B 및/또는 C 의 하나 이상의 요소들을 포함할 수 있다. 예를 들어, A와 B의 조합은 하나의 A 및 다수의 B, 다수의 A 및 하나의 B, 또는 다수의 A 와 다수의 B 를 포함할 수 있다.
100. 스캐닝 시스템 106. 메모리
110. 인터페이스 시스템 120. 대물 렌즈
116. 샘플 122. 광학 경로

Claims (24)

  1. 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근 가능한 노출된 부분을 통해 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯들을 구비한 캐러셀을 포함하는, 스캐닝 시스템의 제어 방법으로서, 상기 제어 방법은, 스캐닝 시스템이 시작될 때,
    캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소드을 원점 복귀(homing)시키는 단계;
    캐러셀의 복수의 랙 슬롯 내에서 모든 슬라이드 랙들의 목록(inventory)을 생성하는 단계;
    만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하는 단계; 및,
    노출된 부분 내의 복수의 랙 슬롯들중 시작 서브 세트(starting subset)를 노출시키도록 캐러셀을 위치시키는 단계;들에 의하여, 자동적으로 스캐닝 시스템을 초기화시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  2. 제 1 항에 있어서, 상기 복수의 랙 슬롯 각각은 복수의 랙 슬롯 사이의 순서를 나타내는 인덱스(index)와 연관되고, 상기 복수의 랙 슬롯들중 시작 서브세트(starting subset)는 인접한 비어 있는 랙 슬롯들의 최대 세그먼트로 이루어지고, 캐러셀을 위치시키는 단계는, 인접한 비어 있는 랙 슬롯들의 2 개 이상의 최대 세그먼트들이 있을 때, 2 개 이상의 최대 세그먼트들내의 랙 슬롯들과 관련된 인덱스들에 기초하여, 시작 서브세트로서 2 개 이상의 최대 세그먼트들중 하나를 선택하는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  3. 제 1 항에 있어서, 전방 단부 구성 요소들의 원점 복귀 단계는 :
    리미트 스위치가 트리거링(triggering)될 때까지 캐러셀을 제 1 방향으로 회전시키고;
    리미트 스위치를 중지(back off)시키도록 캐러셀을 제 1 방향과 반대인 제 2 방향으로 회전시키고;
    리미트 스위치를 트리거링하도록 캐러셀을 제 1 방향으로 회전시키고;
    캐러셀의 위치 선정을 통제하는 인코더의 하나의 위치를 제로화(zeroing)함으로써; 캐러셀을 원점 복귀시키는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  4. 제 1 항에있어서, 슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하는 단계는, 슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하기 전에, 스캐닝 스테이지로부터 슬라이드 랙에 있는 대응 슬라이드 슬롯으로 슬라이드를 언로딩하는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  5. 제 1 항에 있어서, 스캐닝 시스템을 초기화시킨 이후 스캐닝 시스템의 작동 동안에, 캐러셀을 자동으로 위치시켜서 스캐닝 시스템의 노출된 부분 안에 복수의 랙 슬롯들 중 인접한 비어 있는 랙 슬롯들의 최대 세그먼트를 노출시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  6. 제 1 항에 있어서, 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소에 의해 처리되는 동안 캐러셀을 회전시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  7. 제 6 항에 있어서, 캐러셀의 회전은, 스캐닝 시스템의 노출된 부분 안에 복수의 랙 슬롯들 중 인접한 비어 있는 랙 슬롯들의 최대 세그먼트를 노출시키도록 캐러셀을 자동으로 위치시키는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  8. 제 6 항에 있어서, 상기 캐러셀의 회전은 사용자 작동에 응답하여 상기 캐러셀을 위치시키는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  9. 제 8 항에 있어서, 사용자의 작동에 응답하여 상기 캐러셀을 위치시키는 것은, 상기 복수의 랙 슬롯들 중 하나에 대응하는 슬라이드 랙의 사용자 선택에 응답하여:
    만약 선택된 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소들에 의해 처리되고 있다면, 선택된 슬라이드 랙의 처리를 중단하고 슬라이드 랙을 대응하는 랙 슬롯으로 언로딩하고;
    스캐닝 시스템의 노출된 부분 안에 대응 랙 슬롯을 노출시키기 위하여 캐러셀을 위치시키는; 것을 포함하는, 스캐닝 시스템의 제어 방법.
  10. 제 1 항에 있어서, 스캐닝 시스템은 스캐닝 시스템의 노출된 부분 안에 위치된 복수의 랙 슬롯들 중 하나와 각각 연관된 복수의 시각 지시기(visual indicator)를 포함하고, 상기 제어 방법은, 스캐닝 시스템의 노출된 부분 안에 위치한 복수의 랙 슬롯 각각에 대해: 랙 슬롯 안의 슬라이드 랙 또는 랙 슬롯의 상태를 검출하고; 검출된 상태를 지시하도록 랙 슬롯과 연관된 시각 지시기를 제어하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  11. 제 10 항에 있어서, 복수의 시각 지시기들 각각은 광(light)이고, 적어도 하나의 프로세서는, 스캐닝 시스템의 노출된 부분 안에 위치된 복수의 랙 슬롯들 각각에 대하여, 검출된 상태와 연관된 칼러로 빛나도록 각각의 광을 제어하는, 스캐닝 시스템의 제어 방법.
  12. 제 1 항에 있어서, 캐러셀을 위치시키는 단계는 캐러셀을 복수의 인덱싱된 위치들 중 하나로 회전시키는 것을 포함하는, 스캐닝 시스템의 제어 방법.
  13. 제 12 항에 있어서, 복수의 인덱싱된 위치는 복수의 랙 슬롯들의 수와 동일한 수의 인덱싱된 위치로 이루어지는, 스캐닝 시스템의 제어 방법.
  14. 제 1 항에 있어서,
    스캐닝 시스템의 노출된 부분에 있는 복수의 랙 슬롯들중 하나로의 슬라이드 랙의 삽입을 검출하고;
    하나의 랙 슬롯으로 슬라이드 랙이 삽입됨을 검출하는 것에 응답하여, 하나의 랙 슬롯이 슬라이드 랙에 의해 점유됨을 반영하게끔 하나의 랙 슬롯의 상태를 업데이트 하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  15. 제 1 항 에 있어서, 스캐닝 시스템은 스캐닝 시스템의 노출된 부분 주위에 광 커튼(light curtain)을 포함하고, 상기 제어 방법은:
    광 커튼의 중단을 검출하고;
    광 커튼의 중단이 검출되는 동안 회전을 방지하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  16. 제 15 항에 있어서,
    캐러셀을 회전시키기로 판단할 때, 자동적으로,
    캐러셀의 회전을 지연 기간 동안 지연시키고;
    광 커튼의 중단이 검출될 때마다 지연 기간을 재설정(reset)하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  17. 제 16 항에 있어서, 스캐닝 시스템은 디스플레이를 포함하고, 상기 제어 방법은 디스플레이상의 그래픽 사용자 인터페이스 안에 지연 기간의 남은 양을 지시하도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  18. 제 1 항에 있어서, 슬라이드 랙이 스캐닝 시스템의 후방 단부 구성 요소들에 의해 처리되는 동안 캐러셀을 회전시킬 때, 처리되고 있는 슬라이드 랙에 대응하는 복수의 랙 슬롯들중 하나가 스캐닝 시스템의 노출된 부분 안에 노출되는 것을 방지하기 위하여 캐러셀을 회전시키도록 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  19. 제 1 항에 있어서,
    캐러셀이 이동한 회전 거리를 모니터하고;
    상기 회전 거리가 미리 결정된 쓰레숄드를 초과한 것을 판단함에 응답하여, 캐러셀을 위한 드리프트 보정(drift correction)을 실행하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  20. 제 1 항에 있어서,
    스캐닝 시스템은 캐러셀과 스캐닝 시스템의 노출된 부분 둘레의 프레임 사이의 핀치 포인트(pinch point)에 있는 핀치 포인트 센서(pinch point sensor)를 포함하고, 상기 제어 방법은: 핀치 포인트 센서를 통하여 핀치 포인트에서의 장애물을 검출하고; 장애물이 검출되는 동안 회전을 방지하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  21. 제 1 항에 있어서,
    후방 단부 상태 장치(back-end state machine)에 따라 후방 단부 구성 요소들을 제어하고;
    후방 단부 상태 장치에 독립적으로 작동되는 전방 단부 상태 장치(front-end state machine)에 따라 전방 단부 구성 요소들을 제어하도록; 적어도 하나의 하드웨어 프로세서를 사용하는 것을 더 포함하는, 스캐닝 시스템의 제어 방법.
  22. 제 21 항에 있어서, 상기 후방 단부 상태 장치는 캐러셀을 포함하는 하나 이상의 전방 단부 구성 요소를 제어하기 위해 상기 전방 단부 상태 장치로 명령을 송신하도록 구성되는, 스캐닝 시스템의 제어 방법.
  23. 적어도 하나의 하드웨어 프로세서;
    슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯을 포함하는 캐러셀(carousel);
    상기 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근될 수 있는, 노출된 부분; 및,
    하나 이상의 소프트웨어 모듈;을 포함하는 스캐닝 시스템으로서;
    상기 하나 이상의 소프트웨어 모듈은, 스캐닝 시스템이 시작될 때 적어도 하나의 하드웨어 프로세서에 의해 실행되면, 자동적으로,
    캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소들을 원점 복귀시키고;
    캐러셀의 복수의 랙 슬롯 안에 있는 모든 슬라이드 랙들의 목록(inventory)을 생성하고;
    만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하고;
    노출된 부분 안의 복수의 랙 슬롯들의 시작 서브세트(starting subset)를 노출시키도록 캐러셀을 위치시켜서; 스캐닝 시스템을 초기화하도록 구성되는, 스캐닝 시스템.
  24. 명령들이 저장된 비 일시적인 컴퓨터 독출 가능 매체(non-transitory computer-readable medium)로서, 캐러셀의 일부가 스캐닝 시스템의 외부 환경으로부터 접근될 수 있는 노출 부분을 통해 슬라이드 랙을 수용하도록 구성된 복수의 랙 슬롯을 구비한 캐러셀을 포함하는 스캐닝 시스템의 프로세서에 의해 상기 명령들이 실행되면, 상기 명령들은 스캐닝 시스템이 시작될 때 상기 프로세서로 하여금,
    캐러셀을 포함하는 스캐닝 시스템의 전방 단부 구성 요소들 및 후방 단부 구성 요소들을 원점 복귀시키고;
    캐러셀의 복수의 랙 슬롯 안에 있는 모든 슬라이드 랙들의 목록(inventory)을 생성하고;
    만약 그 어떤 후방 단부 구성 요소에 의해서라도 그 어떤 슬라이드 랙이 처리되고 있었다면, 슬라이드 랙을 캐러셀의 복수의 랙 슬롯들 중 대응하는 하나의 랙 슬롯으로 언로딩하고;
    노출된 부분 안의 복수의 랙 슬롯들의 시작 서브세트(starting subset)를 노출시키도록 캐러셀을 위치시켜서; 자동적으로 스캐닝 시스템을 초기화하게 하는, 컴퓨터 독출 가능 매체.




KR1020217020364A 2019-08-06 2020-08-05 슬라이드-스캐너 제어 KR20220041038A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962883340P 2019-08-06 2019-08-06
US62/883,340 2019-08-06
PCT/US2020/045071 WO2021026276A1 (en) 2019-08-06 2020-08-05 Slide-scanner control

Publications (1)

Publication Number Publication Date
KR20220041038A true KR20220041038A (ko) 2022-03-31

Family

ID=72193590

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217020364A KR20220041038A (ko) 2019-08-06 2020-08-05 슬라이드-스캐너 제어

Country Status (6)

Country Link
US (1) US20220326494A1 (ko)
EP (1) EP3884283A1 (ko)
JP (1) JP2022543177A (ko)
KR (1) KR20220041038A (ko)
CN (1) CN113396351A (ko)
WO (1) WO2021026276A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113624684B (zh) * 2021-08-04 2022-06-24 杭州医派智能科技有限公司 一种病理切片扫描仪

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4693373A (en) * 1985-06-12 1987-09-15 Slide Management Systems, Inc. Slide archival storage and retrieval system
US9518899B2 (en) * 2003-08-11 2016-12-13 Sakura Finetek U.S.A., Inc. Automated reagent dispensing system and method of operation
WO2019071049A1 (en) * 2017-10-04 2019-04-11 Leica Biosystems Imaging, Inc. INVENTORY AND REINTEGRATION SYSTEM OF BLADES
JP7021348B2 (ja) * 2017-11-30 2022-02-16 ライカ バイオシステムズ イメージング インコーポレイテッド カルーセルの回転を不能にするセーフティライトカーテン
CN117760962A (zh) * 2017-12-01 2024-03-26 徕卡生物系统成像股份有限公司 载片架转盘

Also Published As

Publication number Publication date
EP3884283A1 (en) 2021-09-29
JP2022543177A (ja) 2022-10-11
US20220326494A1 (en) 2022-10-13
WO2021026276A1 (en) 2021-02-11
CN113396351A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
US11519925B2 (en) Safety light curtain to disable carousel rotation
AU2018375823B2 (en) Slide rack carousel
US11445081B2 (en) Slide rack determination system
KR20220041038A (ko) 슬라이드-스캐너 제어
JP7050945B2 (ja) 電源オフディレーシステムおよび方法
US11704003B2 (en) Graphical user interface for slide-scanner control
EP3884348B1 (en) Stall detection for autoloader axes