1: |
Inputs: |
|
CT-based 3D airway-tree model |
|
route r = {b1,
b2, …} |
|
navigation plan {Tj, Mj}, j = 1, 2, …, a
|
|
bronchoscope video stream |
2: |
Present VB View
// Initialization at main carina |
3: |
Move bronchoscope so
|
4: |
for all bj, j = 1, …, a
such that
Mj ≠ NULL do
|
5: |
// Perform rotate-flex-advance maneuver set |
6: |
Invoke
“rotate” command
|
7: |
Present VB-rotate-movie
|
8: |
Rotate bronchoscope so
|
9: |
Invoke
“advance” command
|
10: |
Save base-camp pair
|
11: |
Present VB-advance-movie
|
12: |
Flex and advance bronchoscope so
|
13: |
// Position-verification mechanism |
14: |
if
“verify” command
invoked then
|
15: |
Present targeting circles on video |
16: |
Move bronchoscope so a bifurcation fits inside circles → IV
|
17: |
Invoke
“verify” command
|
18: |
global-register
|
19: |
Present base-camp pair {IV,
} |
20: |
if
depicted registration deemed correct
|
|
then
|
21: |
if
bronchoscope in correct position
|
|
then
|
22: |
continue // Navigation on track |
23: |
else // bronchoscope deemed to be in incorrect position |
24: |
Pull back bronchoscope to branch
bj
|
25: |
go to 6 // Back up to last correct branch |
26: |
else // Depicted registration is incorrect |
27: |
go to 14 |
28: |
else if
“back” command
invoked then
|
29: |
repeat
|
30: |
j−1 → j
|
31: |
until
Mj ≠ NULL // Back up to first proper branch |
32: |
Present VB View
// Present “Arrive” VB view for previous proper branch |
33: |
Pull back bronchoscope to indicated branch
|
34: |
go to 6 |