WO1996013216A9 - Systeme de commande pour chirurgie ophtalmique - Google Patents

Systeme de commande pour chirurgie ophtalmique

Info

Publication number
WO1996013216A9
WO1996013216A9 PCT/US1995/013594 US9513594W WO9613216A9 WO 1996013216 A9 WO1996013216 A9 WO 1996013216A9 US 9513594 W US9513594 W US 9513594W WO 9613216 A9 WO9613216 A9 WO 9613216A9
Authority
WO
WIPO (PCT)
Prior art keywords
control
task
module
control system
object oriented
Prior art date
Application number
PCT/US1995/013594
Other languages
English (en)
Other versions
WO1996013216A1 (fr
Filing date
Publication date
Application filed filed Critical
Priority to AU40068/95A priority Critical patent/AU4006895A/en
Publication of WO1996013216A1 publication Critical patent/WO1996013216A1/fr
Publication of WO1996013216A9 publication Critical patent/WO1996013216A9/fr

Links

Definitions

  • the present invention relates to the field of ophthalmic surgery, and in particular to the control of micro surgical systems used in ophthalmic surgery.
  • Microsurgical systems including a plurality of related surgical modules and instruments are known for preforming precise microsurgical procedures in the. field
  • a remote hand piece having a small surgical instrument is used to cut
  • tissue macerate or cauterize the eye tissue while an irrigation or infusion liquid such as Ringer solution is brought to the site of the surgery.
  • the cut or macerated tissue is carried away from the surgical site by aspiration through a suction conduit or tube, which may or may not be connected to the tool and to some type of collection vessel i.e. a bag or bottle located at a remote location from the instrument.
  • the operation of the various microsurgical tools, including the suction produced in the suction conduit is usually controlled by the surgeon via some combination of nand switches and footswitches so that
  • BAD ORIG/NAL BAD ORIGINAL operation of the tools can be controlled during surgery and so that infusion/aspiration can be regulated during the surgery without removing the instrument from the sito of the surgery.
  • U.S. Patents 4,627,833 and 4,493,695 disclose ⁇ a microsurgical system cassette assembly particularly adapted for ophthalmic surgery.
  • Figure 1 of U.S. Patent 4,627,833 discloses a conventional prior art module system having a phaco emulsification module, a cutting module, an infusion/aspiration module and an illumination module.
  • U.S. Patent 4,643,717 discloses a phaco emulsification hand piece particularly adapted for use in the microsurgical system illustrated in Figure 1 of U.S. Patent 4,627,833. 5
  • Each of the foregoing patents, previously assigned to Site Microsurgical Systems, Inc., are now assigned to the assignee of the present invention.
  • Microsurgical Systems include the model 8000V system of Cavitron Kelmon and the Occutome ° II/Fragmatone II System of Cooper Medical Devices Corporation.
  • U.S. Patent 4,933,843 discloses a control system for ophthalmic surgical instruments having an integrated system control console which is programmable by the user by inserting a pre-programmed key into the system console. The key changes the default values normally used by the control system to those values selected by a particular surgeon.
  • the system contemplates infusion/aspiration, phaco emulsification, cutting and cauterization instruments, the operation of one or more being controlled by a footswitch.
  • U.S. Patent 5,249,121 discloses a remote -" control console for a surgical control system, particularly adapted for ophthalmic surgery.
  • This console includes a video display screen surrounded by a plurality of membrane switches which are used to set the various operating states of the surgical instruments controlled by the system.
  • the control system contemplates infusion/aspiration, phaco emulsification, cauterization, and cutting ( itrectomy) .
  • U.S. Patent 5,091,656 discloses a footswitch assembly with electrically engaged detents that is particularly adapted for use with the foregoing remote control console described in U.S. Patent 5,249,121.
  • This patent discloses in Figure la, a prior embodiment of an integrated console for a surgical system, also • * • -> having a CRT display with two columns of membrane switches adjacent either vertical side of the display.
  • U.S. Patent 4,770,654 discloses an apparatus for driving powered surgical instruments particularly adapted for use in ophthalmic surgery.
  • a central processing unit reads a plurality of switches and sensors to control a pneumatic system which drives the surgical instruments, and to control a vacuum generation systems uses to aspirate, cut or fragment tissues and 5 fluids in the operating site.
  • the multiplicity switches and components renders the device unduly complex and difficult to upgrade or improve.
  • a significant improvement in the performance of one instrument or modular component may require an upgrade of the entire console.
  • the present invention is a fully integrated surgical system for ophthalmic surgery which utilizes an
  • the system includes a plurality of modules for controlling the operation of a plurality of micro surgical instruments including infusion/aspiration, phaco emulsification, cauterization and cutting instruments.
  • these modules are configurable, and are controlled by data control signals to generate electronic or pneumatic signals which control the operation of each of the respective instruments.
  • An electronic display system is provided for displaying a plurality of sets of control parameters wherein each of the instrument modules has an associated set of control parameters that are displayed by the display system.
  • the display system is also an input device and the surgeon may invoke a system task or instrument module by simply touching the icon displayed 0 on the screen. Similarly, secondary state functions or tasks can be altered or re-programmed by touching the
  • - operation of one or more individual instruments may be through the touch screen of the electronic display, or, during the operation, from a user programmable footswitch which acts as an input device for entering
  • the central control system is an object oriented control system that includes an operation Kernel and a plurality of computer program objects, with a separate object for each of the modules and instruments.
  • Each of the program objects is an object oriented control system that includes an operation Kernel and a plurality of computer program objects, with a separate object for each of the modules and instruments.
  • the operating kernel receives control commands from a
  • surgeon via the electronic display system or the programmable footswitch and in response thereto invokes one or more of the computer program objects to accomplish the primary or secondary tasks.
  • the control kernel periodically polls the control field of each of 0 the computer program objects to determine the status of each selected task and to enable or disable the execution of the primary or secondary state functions in accordance with the task status.
  • the aforementioned design enables integration of all of the modules through the centralized control system, but yet enables a module and its associated computer program object to be upgraded, without having to replace ' the entire operating system, or its associated control switches.
  • upgrading the computer ° program object the operating parameters displayed on the electronic display system and the surgeon
  • the instrument modules include electronic drivers that are actuated by separate micro processors associated with the module. This enables for quick and speedy interchange of instruments m the event D of a malfunction since calibration of the instrument to the module can be accomplished electronically by the associated microprocessor.
  • the use of a fully programmable footswitch enables the functions or tasks executed by the footswitch to change as each successive ⁇ ⁇ 0 module is invoked through the centralized control system. This enables the individual surgeon to set surgeon preferences for each phase of the micro surgical procedure quickly and easily by merely touching the screen of the display.
  • the display system includes a CRT touch screen display having a plurality of icons displayed thereon which are used to invoke specific tasks. As each task is invoked, the controls associated with that task, and any pre-set operating ranges are displayed on the CRT 20 display. Bar graphs function as both output and input devices inasmuch as when the task is invoked, the initial display of the bar graph represents a preset level. The surgeon can adjust the preset level by touching the bar at its desired level or by dragging the 5 bar with the figure tip to a desired level.
  • up and down arrows are provided to change the preset value.
  • the preset value and the actual value at the instrument are displayed side by side as an output display device. This type of 0 control and indicator design is consistently applied for all of the surgical modules and all of the surgical
  • FIG. 1(a) is an isometric view of the control console and visual display system of the computer controlled apparatus for performing opthalmic surgery.
  • FIG. Kb) is an isometric view the modified electronic footswitch of the present invention.
  • FIG. 1(c) is an illustration of the remote control unit 13 for operating the system of the present invention.
  • FIG. 2 is a system block diagram illustrating - the various subsystems (hardware modules) comprising the microsurgical system 10.
  • FIG. 3 is a conceptual diagram cf the microsurgical control system and software architecture ⁇ of the instant invention.
  • FIGs. 4(a)-4(d) illustrate the CRT control and indicator displays for the phaco module.
  • FIG. 5 illustrates the CRT control and indicator displays for the bipolar module.
  • FIG. 6 illustrates the CRT control and indicator displays for the fiber optics module.
  • FIGs. 7(a)-7(d) illustrate the CRT control and indicator displays for the Peristaltic I/A module.
  • FIGs. 8(a)-8(c) illustrate the CRT control and indicator displays for the Rotary Vane I/A module.
  • FIGs. 9(a)-9(b) illustrate the CRT control and indicator displays for the cutter module.
  • FIG. 10 is a detailed diagram of the control task data structures for controlling GUI displays based upon user input.
  • FIG. 11 illustrates a state diagram of the control task power up procedure.
  • FIG. 12 illustrates a data flow diagram between the touch task and touch screen driver task.
  • FIG. 13 illustrates a state diagram of the touchscreen task.
  • FIG. 14 illustrates a state diagram of the ts driver task ' .
  • FIG. 15(a) illustrates the key selections for the remote control unit 13.
  • FIG. 15(b) illustrates the transmission and - mode selection circuits within the remote control unit 13.
  • FIGs. 16(a)-16(j) illustrate the remote control task corresponding to the key selections of the -' remote control unit.
  • FIG. 17 illustrates the data flow diagram for the adc task 105.
  • FIG. 13 illustrates the state diagram for the dac task 107.
  • FIGs. 19(a)-19(b) illustrate respective state and data flow diagrams for the ext_232 task.
  • FIGs. 20(a)-20(c) illustrate respective state diagrams for the footswitch task, the existing (linemaster) footswitch task, and the modified (ATXR) l- 5 footswitch task.
  • FIG. 21 illustrates a state diagram of the bipolar task.
  • FIG. 22 illustrates a state diagram of the Phaco task.
  • FIG. 23 illustrates a state diagram of the cutter function task.
  • FIGs. 24(a) and 24(d) illustrate state diagrams for rotary vane mode and peristaltic mode I/A tasks, respectively. 5 FIGs. 24(b) ,(c) and (e) illustrate timing diagrams for the footswitch control positions.
  • FIG. 25 illustrates a state diagram of the fiber optic ' s task.
  • FIG. 26 illustrates a state diagram of the warning task.
  • FIG. 28(a) illustrates the message structure for the display task 119.
  • FIGs. 28(b) - 23(d) illustrate the state diagram implementation of the display task.
  • FIG 28(e) illustrates the state diagram for painting actual value bargraphs on the CRT display.
  • T.-,. ?Q is a functional block diagram of the phacoemulsification module 30 of the present invention.
  • FIG. 30 illustrates the phacoemulsification handpiece 25 and power cord 326 for connection with the phacoemulsification module of the microsurgical system 10.
  • FIG. 31 is a control flow diagram for the improved phacoemulsification module 30 controllable by the control system of the present invention.
  • FIG 32. is a toplevel flow diagram of the special test module included in the improved phacoemulsification module 30.
  • FIG 1(a) illustrates the microsurgical system 10 that is controlled by the control system of the present invention.
  • the system 10 is an easy to use, state-of-the-art, computer enhanced, precision surgical instrument that is both mechanically and electrically modular in design and intended for surgical use on the human eye.
  • the system contains the necessary components (hardware modules)
  • phaco phacoemulsification
  • bipolar bipolar coagulation
  • fiber optic illumination fiber optics
  • cutting cutter
  • I/A pumps infusion, vacuum and peristaltic aspiration
  • I/O infusion, vacuum and peristaltic aspiration
  • user input may be implemented by both the Touchscreen 15, which preferably is an ELOGRAPHICS>? touchscreen with touchscreen controller 15' overlayed onto the VGA monitor 16, and, a hand-held remote control unit 13 for communication with a remote receiver 13' .
  • the microsurgical system 10 additionally includes a processor module 8 comprising a microcontroller and suitable ROM/RAM memory for controlling the individual modules as well as the entire system 10.
  • a processor module 8 Connected to the processor module 8 is a speaker 11 for emitting audio frequency signals and a footswitch controller 17 which, as will be explained in detail below, may comprise an existing type (Linemaster) or modified type (ATXR) footswitch.
  • the processor module contains the necessary interfaces and serial communication channels for footswitch and remote controllers. It also provides both digital and analog input and output capability to communicate with other modules and external devices. Digital input from other
  • processor module 8 is provided with system timer and interrupt circuitry 4 that includes: a 100 millisecond -watchdog timer, a system clock running at 8 Mhz, and periodic timers comprising Intel 8254 16 bit counters for dividing down the 8Khz clock and for generating periodic interrupts. Details of the system timer function will be explained in further detail below.
  • the system 10 additionally includes power supply module 12 that is provided for connection to a universal a.c. energy source for powering the system.
  • the module 12 is provided with a main power on/off switch and interlock circuitry 12' and functions to convert the main (line) voltage to appropriate DC voltages for all other modules in the system.
  • microsurgical system Since the microsurgical system is computer driven, it offers a surgeon the option of programming surgical machine operational settings and indicators (e.g. bipolar power, aspiration flow rate, phaco power settings, etc.) into the computer's memory to eliminate the need for a support person (e.g. nurse) to know and manually change these machine settings before or during an operation or procedure.
  • the processor e.g. bipolar power, aspiration flow rate, phaco power settings, etc.
  • .r.odule 8 contains the firmware (software in ROM-Read
  • GUI graphical user interface
  • the touch points are translated by system software to specific display screen coordinates.
  • the computer then correlates the touch points to the graphic objects displayed at those coordinates.
  • the CRT touch screen display 19 is designed to look like a control
  • I-- 5 panel with bargraph displays indicating both preset user preferences and actual parameters. Both preset and actual values will each have separate bars within the same graph. Due to the real time operating system (RTOS), to be described in detail below, the graphs dynamically change as the changes occur in real time, just as conventional controls respond. Since the system has a touchscreen overlaid on the CRT, the bargraphs also function as input devices. The user can adjust the preset level by touching the bar at the desired level. 5 Moving the value of the bar causes the microcontroller to change a programmable control voltage in a circuit in the same manner as a potentiometer. For instance, as shown in Figure 1(a), fine resolution changes can be made by touching up or down arrows 33 located next to 0 the bargraphs 32,34. Preset values appear in the left side 32 of double bargraphs, such as shown by the double
  • the actual value bargraphs are next to the preset graphs, and the height changes, up or down, as -' the actual value changes in real time.
  • This display gives an instantaneous reference point for the actual value versus the preset value.
  • This control/indicator design is consistently applied for all surgical functions having both a preset control value and a monitored actual value which changes in real time.
  • buttons and repeated touching of a push button icon will cause the computer to turn that particular function on or off, in the same way as a physical switch, by supplying or removing power to the circuit.
  • the appearance of the button image, or icon will change to show the selection.
  • the icons graphically represent their associated functions.
  • the push button which controls the Infusion/Aspiration functions is displayed on the CRT as an I/A icon which depicts an aspiration cassette with fluid in the container, such as shown in Figure 7(a).
  • the Bipolar Module icon 21 as shown in Figure 5 is displayed as a set of forceps with a lightning bolt between the tips, which represents the high voltage known to cause coagulation.
  • the CRT 19 shows only the controls needed for the user's currently selected devices, however, there is always ready access to all modules. As the user selects operating modes, the touch screen CRT display changes to show the selections. For instance, the selected icon will change in color, brightness, etc. to show the
  • Operating parameter changes within a given instrument panel will be made when the user selects the icon for that parameter.
  • a small display panel will show the selection options. When the user makes a selection, the panel will disappear and the screen will return to its previous display, indicating the change made.
  • the hardware modules designed into the microsurgical system 10 and controlled by the control system 100 of the instant invention provide phacoemulsification (“phaco”), bipolar coagulation (“bipolar”), fiber optic illumination (“fiber optics”), cutting (“cutter”), infusion, vacuum and peristaltic aspiration (“I/A pumps”).
  • phaco phacoemulsification
  • bipolar bipolar coagulation
  • fiber optic illumination fiber optics
  • cutting cutter
  • I/A pumps multipin connectors 101-104 are provided on the front of the control system console 5 to enable quick and convenient handpiece connection to the hardware modules intended for use in the system 10.
  • connector 101 is the connection for the bipolar handpiece 20' and bipolar module 20.
  • Connector 102 is the connection for the phaco handpiece 25 and phaco module 30.
  • Connector 103 is the connection for the cutter handpiece 40' and cutter module 40.
  • Connector 104 is the connection for the fiber optic
  • illuminator 60' for connection with fiber optics module - 60.
  • a replaceable and disposable inf sion/aspiration cassette 6 is provided for controlling the flow cf an infusion solution, and the aspiration of this solution from the microsurgical site ⁇ through a plurality of pinch valves and vent chambers defined within the I/A module 50 disposable cassette, removable collection container 6'' is provided for accumulating fluids and tissues aspirated from the microsurgical site during the surgical procedure.
  • the phacoemusification (“phaco") module 30 includes a microcomputer 315, which in the preferred embodiment, is an MC68HC11 microcontroller comprising a system clock (not shown), timer interrupt circuitry, ROM/RAM memory, and I/O ports for controlling the module.
  • the module 30 includes a phacoemulsi ication handpiece 25, as shown in Figure 30, that is compact, lightweight, and includes a piezoelectric structure designed to vibrate flat or bevel angled needles (not shown) at ultrasonic frequencies of up to 54 kHz in the preferred embodiment.
  • an output power amplifier circuit in conjunction with an FET driver circuit, operates to drive the phaco handpiece 25.
  • FET driver circuit 322 and power amplifier 320 receives and amplifies an ultrasonic frequency signal 319 that is output from a numerically controlled
  • the output driver circuitry generates voltage drive signals 324 to operate the handpiece 25 and vibrate the needles at ultrasonic frequencies.
  • Serial data signals 353 that represent the optimum ultrasonic frequency for the particular handpiece
  • the Phaco module 30 includes a voltage controlled power supply 212 which converts a 24 VDC signal 347 from system power supply 12 into a suitable DC voltage signal
  • the Phaco module is additionally provided with feedback circuitry 321 for generating instantaneous voltage, current, and power signals that represent power output delivered from the output circuit 320 to the handpiece 25. These signals are fedback to the microcomputer 315 for monitoring and control. As shown in Figure 29, signal 346 represents the instantaneous power delivered to the handpiece and this signal is 5 input to the processor module 8, which provides means for calculating the total amount of power delivered to the phaco handpiece 25 during time the handpiece has been activated. Other signals that are output from the Phaco module 30 for digital input to the processor - module 8 include status assignment bits including: Phaco handpiece fault bit, indicated as signal 341; Phaco
  • BAD ORIGINAL module enabled bit indicated as signal 342; phaco module fault bit, indicated as signal 343; Phaco power reading valid bit, indicated as signal 344; and, Phaco handpiece installed bit, indicated as signal 345.
  • the system processor 8 of system 10 controls and monitors the power level and the user can select the Phaco operating mode, power level, pulse rate, etc., on the CRT Touch Screen Display 15 or buttons on a remote rol.
  • the user i r> may select the handpiece "pulse" or "continuous" operating mode, which is represented as signal 348 for input from the system module 8 (touchscreen, remote control unit, or, footswitch) to the microcontroller 315.
  • the user may select a desired pulse rate, indicated as signal 349, for input to the microcontroller 15 when operating the handpiece in the pulse mode.
  • the analog power setting is also user selectable, and this signal is input to the microcontroller 15 for 0 controlling the amount of power delivered to the handpiece 25.
  • An additional signal 352 is input from the system processor 8, when it is desired to run a handpiece test for testing and optimizing power to the handpiece prior to its use. 5 Additionally, power to the handpiece is controlled by the footswitch 17.
  • panel mode where a fixed preset power is delivered to the handpiece when the footswitch is depressed
  • surgeon mode where a power level between 0 and a percentage of ° the preset that is proportional to the footswitch position is delivered to the handpiece
  • pulse mode is three modes: panel mode, where a fixed preset power is delivered to the handpiece when the footswitch is depressed; surgeon mode, where a power level between 0 and a percentage of ° the preset that is proportional to the footswitch position is delivered to the handpiece; and, pulse mode,
  • the output power is pulsed at a user selected rate - from 1 to 15 pulses per second as the footswitch is depressed.
  • Figure 4(a) illustrates the phaco control settings on the CRT 19 touch screen display.
  • the phacoemulsifier icon 31 as indicated in Figure 4(a) is selected through the CRT Touch Screen Display 15 (and buttons on the remote).
  • the percentage of power transmitted through the amplifier is controlled by the system microprocessor (processor module 8) and adjusted - w by the user by pressing the adjustable bar graph and power up/down control icons 33 on the CRT Touch Screen Display 15.
  • the user selected power setting display 32 is shown in Figure 4(a) as a bargraph and numeric display on the CRT touch screen.
  • the actual power -2 display indicator 34 displays the real time percentage of maximum power (actual power value) delivered to the handpiece and is shown in Figure 4(a) as below the preset power setting value displayed by bargraph 32.
  • the 0 CRT display 15 will reveal a screen, shown in Figure 4(c), having up/down arrow icons 36 to allow the user selection and adjustment of the pulse rate.
  • Numeric display of the pulse-mode rate (range from 1-15 pulses per second) is shown on the CRT display 19 as display 5 37.
  • the phaco time display 38 indicates the elapsed time in minutes and seconds, (maximum of 99 minutes and 59 seconds).
  • the energy display icon 39 is selected, the CRT display 15 will reveal a screen, as shown in Figure 0 4(d), indicating the cumulative amount of energy delivered to the handpiece during time the handpiece has
  • the software controlled phaco module 30 consists of several processes as follows: tne Main Background process which performs nearly all the processing tasks required by the phaco module software; the Power On reset process which runs once when power is first applied to the phaco module 30 and drops into the Main Background Program process when it completes,* the Special Test Mode process which controls the phaco ⁇ " module according to commands received from serial communication bus 359 and serial communication input port 361 (shown in Figure 29) from an external host, such as a personal computer running communication software; the Pulse Rate interrupt process which 2 functions to alternatively turn the Phaco module power output on and off at the proper rate when operating in pulse mode; and, the Periodic interrupt process which monitors the analog inputs from the system processor module and those internal to the Phaco module.
  • tne Main Background process which performs nearly all the processing tasks required by the phaco module software
  • the Power On reset process which runs once when power is first applied to the phaco module 30 and drops into the Main Background Program process when it completes,* the Special
  • the Power On reset process runs once when power is first applied to the phaco module 30.
  • the module enable signal 351 that is generated from the system processor 8, enables phaco ' module operation.
  • this process configures the MC68HC11 Phaco microcontroller 315 for proper operation by: initializing the microcontroller's stack pointer (not shown); starting the analog to digital converter svstem comprising A/D converter 363 ( Figure ⁇ 29) which converts the 0-10 V analog signal representing power to be applied to the phaco handpiece into a digital signal transmitted over serial data line 354 for controlling the output of voltage controlled power supply 312; specifying and enabling two interrupt inputs ⁇ ' and serial communication I/O ports and initializing the Serial Communication Interface 361; initializing the Programmable Timer IC (not shown); setting default values of initialized global variables; outputting default frequency to frequency D/A converter 362 ( Figure ⁇ 29) and outputting zero power to the power D/A converter; and, enabling all interrupts.
  • the microcontroller 315 When the system processor enables the module enable signal 351, the microcontroller 315 enables the FET enable and Power enable signals 364,365, J respectively, to turn on respective AND gates 366,367 to enable the driver circuitry to power the handpiece. Should a fault arise during the handpiece operation, the FET and/or Power enable signals 364,365, may become deactivated as controlled by the microcontroller 315 to J ⁇ remove power from the handpiece and deactivate the system.
  • FIG. 31 A top level flow chart of this module is shown in Figure 31.
  • this module performs nearly all the processing tasks required by the phaco module software. It consists of a kernel (not ⁇ shown) which periodically polls the system status input register (not shown) at step 372 and uses the result to look up a state number in a look-up table (not shown) as indicated at step 374. A section of code corresponding to each state is then executed. In the preferred embodiment, there are seven defined states numbered from state 0 to state 6 as shown in Figure 31.
  • the Idle State (State 0), indicated as process 376, is entered whenever the hand piece 25 is connected and the phaco module 30 is not enabled by the system - " processor module.
  • the code here outputs status via status bit 345 ( Figure 29) to the processor module 8 to indicate that the module is ready and then returns to the software kernel.
  • the Start State (State 1 ⁇ indicated as process 2- 378, is entered when a hand piece 25 is connected and the phaco module 30 receives an enable signal from the system processor module.
  • a test is first made to determine whether or not a hand piece test is required. If it is determined that a hand piece test is required, 5 this section of code sends status to the processor module to indicate that a test predecessor is required and then returns to the kernel. The software will stay in this sta-te until a hand piece test signal 352 ( Figure 29) is received from the system processor module. If a hand piece test is not required, the code sets the module enabled status bit signal 343 of Figure 29 and
  • the normal or run fixed mode (State 2), indicated as process 380 in Figure 31, is entered when the module 30 is operating in the continuous power mode.
  • the code here turns on the DC power and enables the output stage drivers so that power can be continuously delivered to the hand piece 25.
  • a check is made to see if the Special Test mode (a module diagnostic mode), indicated as process 384, should be entered. If not, a return is made to the kernel (idle state).
  • the run pulse mode (State 3), indicated as process 382 in Figure 29, is entered when the module 30 receives pulse mode on bit 348 ( Figure 29) from the system processor.
  • the voltage controlled power supply 312 is turned on and off at the desired duty cycle.
  • the on/off control of the voltage controlled power supply 312 at the specified duty cycle is performed by a pulse rate interrupt routine whenever the software is in this state. This routine enables the microprocessor to generate a serial data signal 354 for controlling the on/off pulse mode rate.
  • the code checks to see if the Special Test mode 384 should be entered. If not, a return is made to the kernel (idle state).
  • T ⁇ f -Hand Piece test _ - The Hand piece test (State 4), indicated as process 386 in Figure 29, is entered when the hand piece test signal 352 ( Figure 29) generated from the processor module, is received.
  • the hand piece test is run and the - results are reported back by means of the hand piece fault status signal 341. For instance, if the microcontroller determines that the VRMS signal output from the feedback circuit 321 is not within its predetermined optimum range when operating, the hand ⁇ - piece fault status signal 341 will trigger.
  • the test remains in this state unit the hand piece test signal 352 from the processor module goes false at which time a return the kernel (idle state) is made.
  • the Hand piece flag (State 5), indicated as process 388, is entered whenever a hand piece disconnect signal 368, as indicated in Figure 29, is detected.
  • the code clears the hand piece complete flag and the hand piece failed flag, and waits in this state until a hand piece is connected to the module after which a return to the kernel is then made. When these flags are cleared, a new hand piece test will be required before normal operation can take place.
  • the Module error test (State 6), indicated as process 390 in Figure 29, contains Phaco module error detection capability.
  • the special test module receives serial input from bi-directional serial communication data line 359 to the serial communication port interface 361 ( Figure 29), and recognizes and executes valid commands.
  • Th s - module is entered from the Main Background Program module by software detection of an access code received over the serial communication interface comprising routines for communicating with external RS-232 serial devices. This process uses analog input variables from
  • FIG. 32 A top level flow chart of the special test module is shown in Figure 32. As shown in Figure 32,
  • this mode controls the phaco module according to commands received from the serial communication input port and enables special testing of the module and/or handpiece whether connected with or external to the microsurgical system.
  • the process consists of a kernel
  • (not shown) which receives a command interrupt input at step 373 and uses the result to look up a state number in a look-up table (not shown) as indicated at step 375.
  • a section of code corresponding to each command is then executed.
  • the following commands are recognized and will be executed when the phaco module 30 is in special test mode or handpiece test mode: the FMIN command, indicated as 377, sets minimum output frequency; the FMAX command, indicated as 379, sets maximum output frequency; the FREQ value command, indicated as 381, sets handpiece output frequency at a value ranging
  • BAD ORIGINAL 4 BAD ORIGINAL between 0 ⁇ value 4095, wner ⁇ 0 sets maximum and 4095 ' sets minimum;
  • the POWER value command indicated as 333, sets handpiece drive voltage at a value ranging between 0 ⁇ value 4095, where 0 sets minimum and 4095 sets maximum;
  • the SWEEP power,fstar,fstop,fdelta command indicated as step 387 enables the phaco module to sweep from fstart frequency to fstop frequency in increments of fdelta with drive voltage set to power,* the HPT ⁇ ST command, indicated as step 385, runs the hand piece test with results sent to serial output port.
  • Hand piece test results consist of the optimum operating frequency (pziezoelectric resonant frequency) for the present handpiece installed for efficient transfer of power to the handpiece; and, the EXIT command 389, which exits the phaco module from the special test mode to return to the main background program.
  • Each of the command functions includes subroutines for enabling the phaco module to: read a line of serial input, compare two NULL terminated strings, convert signed, unsigned, decimal and hexadecimal strings to 16 bit binary, convert two's complement 16 bit binary to BCD, convert unsigned 16 bit binary to BCD, and convert unsigned 16 bit binary to hexadecimal.
  • Pulse Rate Interrupt Process uses new pulse rate data provided by the Periodic Interrupt process when a change in pulse rate setting, indicated as signal 39 transmitted by processor module 8, is input to the microcontroller 315. It runs at a rate which is twice the pulse rate setting from the processor module. When the Phaco is in the run pulse state, this process alternately turns the voltage
  • BAD ORIGINAL BAD ORIGINAL controlled power supply 312 power on and off at the _ - desired duty cycle (1 - 15 Hz) . It also checks the software state provided by the Main Background Program process .
  • This process reads the analog inputs for use by the Phaco system processes at a rate of 50 times per second (50 Hz) .
  • Power and pulse rate signals from the processor module 8 is used to control the module output 12 power and to set the rate of the pulse rate interrupt. It uses the state of the software data provided by the Main Background Program process.
  • the Serial Communications Module is a module that contains all the routines for communicating with external RS-232 serial devices. Included are the following routines: the "scinit" routine for initializing the serial communication port 361 ( Figure
  • the "sndmsg” routine for sending a NULL terminated string; the "sndc r” routine for sending one character; the “getupr” routine for receiving a character and forcing conversion to upper case; the “getchr” routine for receiving a character; and, the "chkchr” routine for 5 testing if the receive data register is full.
  • Serial Communications module includes the Serial Peripheral Interface Module which contains all the routines for communicating with the frequency control and the power control D/A converters over the
  • This module contains all the routines used to control the programmable interval timer IC.
  • This device contains three 16 bit counters with programmable periods.
  • a first counter is programmed to count the system clcck down to produce a constant 8 kHz rate which is used as input to the other two (second and third) counters.
  • the second counter is programmed to produce a 50 Hz signal which is used as the interrupt signal for the periodic interrupt process described above.
  • the period of a third counter is dynamically programmed to be twice the desired pulse rate when the phaco module is in pulse mode. The output of this counter provides the pulse rate interrupt signal.
  • the following routines are included in this module: "ptinit” which initializes the counters; "setnpr” which programs a new period in the third counter (new pulse rate).
  • this process is to alternately turn the phaco module power output on and off at the proper rate when operating in pulse mode.
  • This process runs as a result of an interrupt generated from a timer whose period is set to exactly twice the desired pulse rate period.
  • the code here checks for a pulse rate change (from the periodic interrupt module) and modifies the timer period if necessary. It then tests whether the module is in pulse
  • r.cdc returns from the interrupt if not in pulse * mode. If in pulse mode, the power is toggled from a on state if it's turned off, or, to an off state if t's turned on.
  • This module is executed 50 times per second as a result of an interrupt signal generated by the second counter of the programmable interrupt timer IC.
  • the process starts conversion of A/D channels 0-3;
  • processor module reads the phaco variable DC supply voltage; reads the mean squared hand piece current; starts conversion of A/D channels 4-7; if not in test mode (state 4), converts the 8 bit power setting value to a 12 bit value, and outputs to D/A; waits for the A/D
  • the bipolar module 20 is an electrosurgical 0 module which provides electrocoagulation typically used to stop bleeding after incision in the sclera by
  • the Bipolar module 20 operates by developing a pulse train of high frequency electrical energy which is coupled into the forceps by a transformer which is part of an amplifier circuit and which additionally functions to limit current leakage and isolate the patient from the system ground so that electrical energy is constrained between the tips of the forceps.
  • a control signal turns the energy on and off and is transmitted through the amplifier.
  • the bipolar Module 20 has settings for variable percentage of total power and the percentage of power transmitted through the amplifier is controlled by the system microprocessor.
  • the bipolar 20 can be controlled with either a modified footswitch 17 (Figure 1(b)), as described in detail in co-filed PCT application no. for which priority is based on U.S. s/n 08/330,925 assigned to the same assignee of the instant invention and the disclosure of which is incorporated by reference herein, or, the currently existing peristaltic footswitch.
  • the modified footswitch has several features which are not available on the peristaltic footswitch. As explained in greater detail below, the system 10 automatically determines whether the modified footswitch or the peristaltic footswitch is installed.
  • Figure 5 illustrates the bipolar control settings on the CRT 19 touch screen display.
  • the bipolar icon 21 indicated in Figure 5 is selected through the CRT Touch Screen Display 15 (and buttons on the remote) .
  • the percentage of power transmitted through the amplifier is controlled by the system microprocessor and adjusted by the user by pressing the power up/down control icons 22 on the CRT Touch Screen Display 15.
  • the user selected power setting display 23 is shown in Figure 5 as a bargraph and numeric display on the CRT touch screen.
  • the generator indicator 24 displays the actual (real time) power value and is shown in Figure 5 as matching the preset power setting value displayed by bargraph 23.
  • the Fiber Optic Module 60 is easily integrated into the microsurgical system 10 to permit precisely controllable posterior segment illumination. It operates to supply a cold light source for use in vitrectomy or other posterior segment surgery where supplemental illumination is required. If a bulb burns out during a procedure, the fiber optic module 60 is capable of automatically switching to the spare bulb by use of an electronic sensor in the Fiber Optic Module, thus, eliminating any inconvenience of manual switching or system shutdown during surgery. Functional details of the fiber optics module 60 can be found in co-filed PCT application no. for which priority is based on U.S. s/n
  • the fiber optic module 60 includes a ⁇ high intensity light bulb which gives off light in ail directions. There is a reflector behind the light bulb which reflects the light in a forward direction. The reflected light strikes a lens which refracts bent light 2 rays into straight light rays. These straight light rays then pass through an infrared filter which filters out infrared radiation (the heat portion of light). This "cool" light then passes through another lens which narrows and focuses the light rays onto the fiber optic
  • the module 60 utilizes DC power 2 supplied through the system and the bulb consumes preferably about 150 Watts.
  • the system 10 is capable of detecting a non-functional bulb even before the Fiber Optic Module 60 is used.
  • the CRT Touch Screen Display will warn the user that the bulb is not functioning and
  • the Fiber Optic Module 60 is electronically adjustable through the CRT touch screen and remote control user interfaces and Figure 6 illustrates the fiber optics control settings on the CRT 19 touch screen 5 display.
  • the fiber optics icon 61 indicated in Figure 6 is selected through the CRT Touch Screen Display 15 (and buttons on the remote) .
  • the alternate bulb display icon 62 the system 10 is capable of automatically switching to backup bulb; or, the user can 0 set a preference to allow manual switching through the CRT Touch Screen Display 15 or buttons on the remote.
  • li ht intensity control is adjustable by the user by " pressing up/down arrow icons 63 on the touch screen 15.
  • the I/A pumps module 50 is integrated into the ' microsurgical system 10 as shown in Figure 2.
  • the I/A pumps module 50 may utilize either a peristaltic pump (I/A peristaltic module), utilizing a flexible piece of tubing filled with fluid that is constricted at one point, wherein the constriction is moved in one
  • the peristaltic pump I/A module 50 operates by forcing a constant quantity of fluid through the line at a given rate of rotation of the pump head rollers (not shown) ; therefore, the only controllable pump parameter is flow rate. Since the pump head and tubing are constant and identical, only the rotational speed of the pump affects the flow rate.
  • the I/A Module peristaltic module 50 has a pressure sensor element (not shown) to sense vacuum level and reflux is accomplished by a vent solenoid that is held open in response to the footswitch user interface.
  • the receiver block is the same as in existing perstaltic pump modules and incorporates the same spring-loaded pinchers and solenoid electronics for infusion control.
  • software will control the analog and digital electronics that are similar to existing electronic control of the motor and solenoid devices.
  • Aspiration in the I/A peristaltic module 50 will be accomplished by the same peristaltic pump system as in prior art designs and use the same collection bag. Additionally, venting is accomplished through spring-loaded pinchers and retract solenoids.
  • var.e module 50 may be installed in system 10.
  • This " module utilizes a rotary vane pump which serves to pump air out of a collection jar via a series of air compartments of variable volume. When the rotary vane pump is turned on, these compartments become larger " during the suction portion of the cycle, drawing air into the compartments from the inlet port. During the discharge portion of the cycle, the compartments become smaller.
  • the flow rate produced by the pump, and consequently the vacuum level in the collection jar, are ⁇ adjusted by controlling pump speed.
  • the vacuum created in the system range may range anywhere from 0 - 500 m Hg and vacuum may be shut off by solenoid pinching of the aspiration line.
  • venting is accomplished through a solenoid valve in the rotary vane I/A module ⁇ - to allow atmospheric pressure into the aspiration line. It is understood that a different cassette for fluid and tissue collection is to be used depending upon whether the I/A peristaltic or I/A rotary vane module is installed.
  • the system 10 interprets the footswitch 17 to control delivery of power to the surgical components of the system.
  • the surgeon may turn on and operate the various surgical handpieces and infusion/aspiration pumps of either the " ⁇ J I/A peristaltic or rotary vane modules 50 of the surgical system.
  • the I/A module functions are additionally controlled through the CRT Touch Screen Display 19,' buttons on the system remote control, in addition to user actuation of the footswitch 17.
  • the vacuum level is user selectable and is preset by pressing adjustable bargraph
  • the preset vacuum display is shown in Figure 7(a) as the bargraph and numeric display 51.
  • selection of the numeric units of vacuum i.e., m -Hg, in-H 2 0, or in-Hg, is made and - the choice s displayed on the CRT touch screen 15 as numeric display 58.
  • the actual vacuum indicator 52 displays the actual (real time) vacuum level value and is shown in Figure 7(a) as below the preset vacuum level displayed by bargraph 51.
  • the aspiration flow rate is user selectable through the CRT Touch Screen Display 15 (or remote control buttons) by pressing adjustable bargraph and up/down arrow icons 53. As will be later explained, the flow rate is then controlled via the footswitch 17.
  • the ⁇ aspiration flow rate display is shown in Figure 7(a) as the bargraph and numeric display 55.
  • the cassette mounting "load/run/unload" functions are selected either during system setup, or, by the selection of a LOAD/RUN/UNLOAD icon 54 as shown in Figures 7(a) and 22 7(d).
  • the CRT display 15 When the infusion mode "CLOSED/OPEN/AUTO" icon 57 is selected, the CRT display 15 will reveal a screen, as shown in Figure 7(c), to allow the user selection of the CLOSED/OPEN/AUTO modes.
  • the CRT -5 display 15 When the fixed/linear aspiration flow rate, icon 59, is selected, the CRT -5 display 15 will reveal a screen, as shown in Figure 7(b), to allow the user selection of fixed or linear aspiration flow rates.
  • the vacuum level is ⁇ user selectable and is preset by pressing adjustable bargraph and up/down arrow icons 51 ' on the CRT
  • ⁇ aspiration flow rate display is shown in Figure 8(a) as the indicator bargraph and numeric display 53'.
  • the aspiration indicator 54' displays the actual (real time) aspiration flow rate and is shown in Figure 8(a) as below the preset vacuum level displayed by bargraph 53'.
  • the CRT display 15 will reveal a screen, as shown in Figure 8(b), to allow the user selection of fixed or linear * ⁇ aspiration flow rates.
  • the infusion control option icon 52' when the infusion control option icon 52' is selected, the CRT display 15 will reveal a screen, as shown in Figure 8(c), to allow the user selection of OPEN/CLOSED/AUTO control options.
  • the Cutter module 40 for the system 10 is designed to satisfy all the requirements of both anterior and posterior segment surgery. It operates surgical hand-held cutters such as the prior art designs that include rotary, guillotine, and three microscissors that fit quickly and easily into the power handpiece 40' as indicated in Figure 2.
  • the cutting speed can be varied from 0 to 500 cuts per minute to suit the particular procedure, and there is a choice of three cutting modes.
  • the cutter module is incorporated into the same metal shell as the I/A module resulting in an I/A-Cutting Module. However, the I/A and cutting function remain independent and ° separate.
  • the cutting function utilizes the same disposable cassette used for inf sion/aspiration.
  • the microsurgical system 10 regulates the electrical power to a motor in the power handpiece to thereby control and monitor cutting speed.
  • the power handpiece 40' ( Figure 2) has a DC motor and gear train that converts electrical power from the cutter module into mechanical power to operate the cutting tip.
  • the user can select cutting speeds from 0 to 500 cuts per minute (cpm) in increments of 50 cpm.
  • the system processor module also ensures that the cutting tip always stops in an open position so that tissue is not trapped in the tip.
  • a switch in the power handpiece 40' closes once per shaft rotation to indicate that the cutting tip is open and that no tissue is trapped.
  • the system 10 uses the signal from the switch to ensure that cutting tips stop in the open position.
  • the system processor measures the time period between successive handpiece switch closures and will then use this value to compute the actual speed in cuts per minute. Based on this measured speed, voltage to the motor in the modified power handpiece is either raised or lowered to achieve the user's selected speed.
  • 25 cutting module 40 will be adjusted through user interfaces (CRT Touch Screen Display 15, buttons on the remote) and additionally controlled via user actuation of the footswitch 17.
  • FIGS 9(a) and 9(b) illustrate the cutting - 5 " function control settings on the CRT 19 touch screen display.
  • FIG. 9(a) is selected through the CRT Touch Screen Display 1 5 (and buttons on the remote) .
  • the cutting mode operating conditions (rotary, guillotine/scissors, rotary oscillating) is selected by a series of icons 42 as illustrated in Figure 9(a).
  • icon 42 has been selected to reveal the rotary mode.
  • Cut rate control is adjustable by the user by pressing adjustable bargraph and up/down arrow icons 43 on the touch screen 15.
  • the user selected (preset) cut rate setting is shown in Figure 9(a) as a bargraph 47 and numeric display on the CRT touch screen.
  • the bargraph indicator 45 displays the actual (real time) cut rate in cuts per minute value and is shown in Figure 9(a) as matching the preset cut rate value displayed by bargraph 47.
  • the system 10 allows the modified cutting function to detect when a power handpiece is installed and directly senses the position (open or closed) of an internal switch, which ensures the cutting tip stops in the open position.
  • Icon 44 on the CRT display will display a warning message when it is determined that the cutter handpiece is absent.
  • the system processor will provide closed loop control of cutter speed to minimize variations between handpieces.
  • the system 10 can be controlled with either a modified footswitch module 17 described in detail in co-filed PCT application no. for which priority is based on U.S. s/n 08/330,925 assigned to the same assignee of the instant invention and the disclosure of which is incorporated by reference herein, or, currently existing peristaltic footswitch.
  • the system 10 automatically determines whether the modified footswitch 17 or a peristaltic footswitch is installed.
  • the modified footswitch 17 has several features which are not available on the peristaltic footswitch.
  • the modified footswitch includes a foot pedal 171 which is mounted for pivotal movement on a frame within housing member 173.
  • the rotatable foot pedal includes first and second sideswitches 175,177 which may be invoked by the surgeon while the foot pedal 171 is depressed.
  • the modified footswitch 17 also includes accessory switches 178,179 which are used to invoke preset patterns or operating characteristics of the surgical instruments, as desired by the surgeon.
  • Housing member 173 also includes a non-slip heel rest 174 to secure the heel against inadvertent slippage.
  • a multipin connector 176 is provided to connect the footswitch to a corresponding multi-pin connector on console 5 for communication with processor module 8.
  • the system 10 interprets the footswitch 17 to control delivery of power to the surgical components of the system.
  • the surgeon turns on the operates the various surgical handpieces and infusion/aspiration pumps which make up the surgical system.
  • the footpedal and switches send signals to the microsurgical system 10.
  • the system processor module then converts these signals to functional commands (e.g. aspiration, cutting mode, etc.).
  • the footswitch 17 has five controls. The user depresses these controls for module functions: The " ⁇ Footpedal turns infusion, aspiration and phacoemulsification on and off and provides linear control of aspiration and phacoemulsification.
  • the two bar switches 175,177 are provided whereby one side bar switch controls cutting and bipolar functions, and the other side bar switch controls the power reflux function.
  • Two stand-alone switches 178,179 are provided whereby the user depresses these to select preset preferences and operational modes (i.e. vacuum presets).
  • the footpedal of the existing and modified ⁇ " footswitch will control infusion, aspiration, phacc, bipolar and cutting. Phaco, bipolar or cutting will be activated when the pedal is depressed to position 3, depending on which module is selected on the CRT touch screen display.
  • the modified footswitch will control both the Peristaltic and Rotary Vane Systems I/A systems.
  • the modified footswitch utilizes tactile feedback and the user will be able to disable this feedback.
  • the system 10 will receive a signal that feedback is disabled and will display a message to the " J user on the CRT touch screen display 19. Functional operation of the footpedal will remain the same whether or not tactile feedback is engaged.
  • the remote control unit 13 is a handheld keypad which
  • BADOR.G- NAL transmits information to the system 10 by an infrared light signal 216.
  • the keys 215a-215j on the remote control 13 correspond to function selections and preset level adjustments as described for the CRT Touch Screen Display.
  • the remote control buttons have the same icons and legends as their respective screen buttons and controls.
  • the Remote Control can be used to control such functions as turning the modules on cr off, adjusting preset values, etc.
  • the remote control unit 13 communicates in either
  • T - of two ways.
  • the user In wireless use, the user has a standard infrared remote control, similar to the type used for consumer television control. From many locations, operating room personnel can point the remote control at the CRT Touch Screen Display 15 and touch the remote ⁇
  • the infrared detector/receiver 13' for transmitted information in this mode is located in or on the top of the CRT Touch Screen Display monitor 19 as shown in Figure 1(a).
  • the remote control unit may be configured for wired operation.
  • a fiber optical receiver cable 217 is installed in a remote control fiber optic connector 218 of the remote
  • a fiber optic receiver/demodulator is provided for receiving fiber optic transmission and this receiver communicates with the system processor module 8.
  • transmission of " ' the infrared light is automatically rerouted from the remote control unit fiber optic connector 218 which also functions as a fiber optic transmitter, to the fiber optic connector in the system 10 console.
  • This cable is used when the Remote Control is positioned in the ⁇ " sterile field or any other position where the line of sight to the CRT Touch screen display 15 is obstructed.
  • Figure 15(b) illustrates the transmission and mode selection circuits within the remote control. Depression of keys 215a-215j on the key pad matrix 215 - are detected, encoded, and amplitude modulated by the key encoder 221. The modulated signal 223 is received by mode selection circuitry 226 and signal 232 is output. If no optical fiber 217 is detected by the fiber installed sensor 227, the mode selector circuits " " delivers the signal 232 to the infrared transmitter circuit 231. If an optical fiber is installed in the fiber optic connector 218, the fiber optic sensor 227 generates sensor signal 233 for receipt by mode selection circuitry 226 which selects the fiber optic transmission circuitry 238,239 for transmitting the modulating signal through the installed fiber optic cable to the system 10.
  • control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control system of the instant invention is designed to provide a graphical user interface 0 AS mentioned above, the control
  • GUI user interface
  • the system is provided with on screen graphics capability for displaying graphics objects such as push buttons, icons, slide bars, etc.,
  • the microsurgical system requires a CRT having a minimum resolution of 640x480 by 16 colors w th RGB component control. It is understood that the type of CRT monitor 19 used is a design choice.
  • a 386 PC based microprocessor is provided in the processor module 8 of system 10 with memory and I/O capabilities necessary to send and receive commands to the bipolar, phaco, cutter, fiber optics, I/A pumps, remote control unit, and footswitch modules to enable
  • RTOS state- driven real time operating system
  • - ⁇ high level language for e.g., Pascal, ANSI C, etc. and uses a compiler on a PC platform.
  • the software architecture description provided hereinbelow is described in a C language convention.
  • the RTOS is a multi-tasking kernal which is a
  • each object in the partitioned system consists of two parts: 1) a task (object), which is analagous to a virtual processor for maintaining the state of the object and 2) a process, which implements the task's behavior and represents the state machine code implementation of the task object.
  • object a task
  • process a process
  • C language conventions One skilled in the art may desire to use other higher level languages.
  • a first bit representing the active/inactive state of the task. For e.g., if the bit is logic 0, the task is inactive and will not be run by the program executive (EXEC) function.
  • EXEC program executive
  • a second bit represents the resume active state of a task as set or cleared by particular system calls.
  • timer_wakeup is set to inform the system timer task that a specific task which requests the timer function requires a wakeup( ) upon reaching a
  • a fifth bit, ready, is used to indicate the status of some requested action.
  • a resume_ps field also stores primary and secondary state variables.
  • a t__ner_count field of the task definition contains the equivalent count of timer interrupts to achieve a specific time value.
  • a task will call either start_my_timer( ) or wake_me_up( ) which loads this field with the specified argument time value.
  • timer task upon checking the timer request bit, will decrement this count and take appropriate action if the decremented value is zero.
  • the remaining field of the task structure is an array of preferably three general purpose counters
  • System processes implement the task's behavior and represent the state machine code implementation of the task object. These processes are single (C language) functions for each required primary state and are entered into a system look-up table (LUT) prior to compile time.
  • the EXEC will execute a task's primary process function based on whether the task is active and the value of the task's primary state is variable. As will be described in further detail below, all processes are defined as PRCC_XXX in a one-to-one correspondence with a particular task.
  • System Calls (available to the module coding implementation of the system 10) provide access to the task structure so that the fields of the task structure never have to be accessed directly from any module. Embedded within the system calls is the access to the current task global variable maintained by the EXEC, and this is the mechanism by which the RTOS knows which task is calling system functions.
  • the System Calls that are implemented in the control system of the invention include:
  • Timer functions such as: start_my_timer( ) which starts a task's timer with value passed as argument; stop_my_timer( ) which stops a task's running timer; chk_my_timer( ) which returns a boolean TRUE if the task's timer is still running and FALSE if otherwise; and, wake_m ' e_up(W_TMR, . .) which is used to achieve fixed delay and will ensure that a task is inactive until terminal count is reached.
  • Inter-task messaging functions such as:
  • the sender task remains inactive until the receiver task acknowledges the message with a clr_msg(); send_msg( ) which sends a message without going inactive or waiting for acknowledgement; get_msg( ) which is used by receiver tasks to check for messages from specified sender; get_parm( ) which returns message parameter as sent from sender task; and, clr_msg( ) which sets message value to zero and which constitutes an acknowledgment from a receiver task.
  • the RTOS provides efficient inter-task communication through the use of pipes which are unidirectional channels which connect sender to receiver.
  • An array 'struct pipe_def' is accessed via the system calls 'tsend( ) ' , 'get_msg( ) ' , 'get_parm( ) ' , and 'clr_msg()'. Whenever these system calls are used, a 2-dimensional lookup table (not shown) is accessed to determine which pipe number connects the source and destination task pair. This table contains source and destination task pair and contains 'NO_PIPE's for all unnecessary connections, but uses the
  • next_state( ) which is used by a task to specify its next primary and secondary states
  • get_sec_state( ) which returns the current secondary state value of the calling task
  • J set_exit_state( ) which sets up exit conditions from common state sequences
  • resume_exit_state( ) which sets primary and secondary states to the states that were specified with a previous call to set_exit_state( ) when exiting the last state of a common state sequence
  • ° inact() which forces the current task to go inactive.
  • the task can then only be activated with a wakeup( )
  • General purpose counter functions include: set_my_cr.tr( ) which initializes the specified counter to specified count; get_my_cntr( ) which returns current contents of specified counter; inc_my_cntr( ) which returns the incremented value of a specified counter,* and, dec_my_cntr( ) which returns the decremented value of a specified counter.
  • Status/querying functions such as: chk_rdy( ) which checks the ready/busy status of
  • set_busy( ) which is used by the task to set itself busy (TRUE) or ready (FALSE); set_status() which is used by the task to set general purpose status value (0-7); and, get_status( ) which is used to check general purpose status value of the specified task.
  • EXEC execution function
  • ⁇ primary state functions if the tasks are active.
  • the EXEC checks for timer interrupt events and runs the system timer and interrupt circuitry 4 ( Figure 2) .
  • the EXEC task accesses a two-dimensional array of primary state pointers by using the loop 5 variable, system task's process index, and the task's primary state variable as the second index.
  • the process function is then executed by the following statement:
  • FIG. 3 is a general diagram of the ⁇ microsurgical control system 100 illustrating the software architecture and the tasks and lines of inter ⁇ task communication and data flow. Described below are brief descriptions of each task's responsibilities and each of the following tasks will be described in greater detail hereinbelow.
  • control task 110 maintains the overall state of the system by receiving user input from the touchscreen 15 and remote control --' unit 13 and by dispatching messages via a built-in, inter-task messaging system (not shown) to lower level drivers/tasks that interface with the hardware components to effect to required action.
  • the TASK_IR_REM hereinafter remote task 113 - L2 receives encoded button press/release data from the Remote Control Unit 13, and forwards messages to the
  • ts_driver task 115 is an interrupt driven receiver for Touchscreen data generated by the Touchscreen 15 and signals the
  • TASK_TOUCH hereinafter touch task 125, that either a "touch” (with position data) or "untouch” has occurred.
  • touch task 125 receives touch/untouch signals and coordinate data from 5 the TS_DRIVER 115 and determines which, if any, valid screen object has been selected. This task determines which graphic object (push button, window icon,, or slide bar),' if any, is affected and then forwards messages to the control task 110 for further action. 0 During different states of the system, the control task
  • the TASK_FTSW hereinafter footswitch task 117, interfaces the footswitch hardware 17 and maintains variables associated with switches and the linear ⁇ potentiometer.
  • bipolar task 120 provides the hardware interface to bipolar unit 20. This task maintains the real time (actual) values for screen display bar graphs.
  • the TA ⁇ K_PHACO hereinafter phaco task 130, provides the hardware interface to the phaco module 30 and maintains phaco actual values for screen display.
  • the TASK_CUTTER hereinafter cutter task 140, provides the hardware interface to the cutter module 40 ⁇ - and maintains actual values for display.
  • the TASK_IA hereinafter I/A task 150, is responsible for driving either the PERISTALTIC or ROTARY VANE I/A Cutter assembly 50 in the system. This task additionally maintains actual values for infusion and on
  • the TASK_FIB_OPT hereinafter fiber optics task 160 provides the hardware interface to the fiber optics module 60.
  • the TASK_AUDIO hereinafter audio task 111, controls the PC speaker 11 for all audible feedback and alarm condition audio.
  • the TASK_GUI_DIS hereinafter display task 119, is responsible for all activity associated with screen objects to be displayed on the CRT display 19 including ⁇ push button press/release, mode switching, help screen
  • This task receives instructions from the control task 119.
  • warning task 109 monitors all identified alarm scenarios associated with individual modules and system operation and sends messages to the control task 110, AUDIO task 111, and DISPLAY task 119 to put tasks in appropriate alarm/warning state.
  • the TASK_NV_RAM hereinafter nv_ram task, maintains all variable data associated with system configuration through power-down and subsequent power- ups. Data includes 'preference settings', user passwords, touchscreen calibration information, etc.
  • the TASK_ADC hereinafter adc task 105, contains all of the functions relating to the eight channel ADC (analog to digital converters).
  • the TASK_DAC hereinafter dac task 107, contains all of the functions responsible for continually writing the DAC (digital to analog conversion) values to the proper DAC channels.
  • the TASK_EXT_232 hereinafter ext 232 task 108, is responsible for handling received remote control unit key codes, validating codes and sending a message to the remote control task 113.
  • the system timer does not operate as an operating system task, but instead is handled by the combination of the timer interrupt service (ISR) and a function call 'do_sys_tmr( ) ' directly from the EXEC within the 'main' program. From within the EXEC, the call 'do_sys_tmr( ) '
  • the processor module 8 contains two (2) 8254 Counter/Timer devices, one of which is programmed for a free-running
  • BAD OR1G1W executive will also call ' rd_lm_adc( ) ' to read the " " LineMaster footswitch linear value, if necessary, every
  • system timer ISR also flags the executive to sample ADC ' channels: each interrupt for the existing (LineMaster) linear channel (if enabled), and any ether channel
  • each state transition arrow is labeled with an (input J condition/output action) description.
  • This 'i/o' description may use any symbology to convey that the system remains in the current state until (condition or event) occurs which results in (output action) AND a transition to the next state.
  • Input conditions and events often require logical operators to express compound conditions such as " A AND B' or (A OR (B AND
  • the state diagrams use a ' ' . " (dot) to represent logical AND, and a ⁇ v' to indicate a logical CR. A logical NOT is depicted using the standard cverscore. If no output is required in a specific state transition, a "-" (dash) is used. 2
  • the state diagrams described use either textual description or 'C'-like descriptions of tne input/output pair. Input conditions and events are implemented in 'C by the 'if(cond )'. Output action is implemented by single line C statements.
  • the next state specifier is ⁇ " implemented by some form of the following system call: 'next_state( primary state, secondary state)'. The following example illustrates typical state transitions.
  • ⁇ event_flag FALSE; output_action_l; next_state(next_pri_state, next_sec_state) ;
  • next_state ( next_pri_state , next_sec_state ) ;
  • the main program, 'main)) ', of the system 100 contains the system initialization code, the RTOS executive, and all the RTOS system calls.
  • the first part of 'main( ) ' initializes the interrupt vectors and sets all task variables to their initial states. At this point, all tasks are inactive, except control task which is responsible for waking all other tasks in its state 0.0 as shown in Figures 11-13 and 17-28(c). Subsequently, execution resumes with the RTOS executive (EXEC) .
  • EXEC RTOS executive
  • the executive is a 'while(l) ' loop that cycles round robin through each of the tasks. If the task is active, the executive executes the task's primary state function found in the 2-dimensional array 'task_st_tbl[NUM_TASKS][16] ' which is a table containing up to sixteen (16) primary state functions for each of the defined tasks. For those tasks where the process is implemented in less than 16 primary states, the task table entries are filled with 'null_funct' to provide table symmetry.
  • the EXEC Prior to executing a tasks 's primary state function, the EXEC checks whether or not a system timer interrupt has occurred. If so, the flag is cleared, and the 'do_sys_tmr( ) ' function is called to service those tasks with outstanding service requests. Additionally,
  • the executive checks a flag which indicates that the remaining ADC channels must be read. This flag is set every fourth
  • a table 'task_tab_indx NUM_TASKS] [ ] is accessed directly by the EXEC to determine which process is associated with each task. As mentioned above, there is a one to one correspondence of TASK_XX to PROC_XX. Since more than one task may use the same process, the second element of the array may be used to specify task- specific data (array index) to be used by the process code.
  • the heart of the RTOS execution unit is the table task_st_tab[NUM_PROCESSES] [MAX_STATES_PROC] ) ( ) which is accessed by the EXEC upon executing each task's primary state function.
  • Each task's process index is obtained from 'task_tab_indx[ ] ' and used to index into the first
  • the second array dimension index is the task's primary state variable (0-15) which now completely specifies the index of the primary state function to execute.
  • FIG 11 illustrates a general block diagram of the control task power up procedure.
  • the EXEC or main program
  • Control task 110 is responsible for starting surgical
  • control task 110 maintains the state of the system by receiving user input and messages
  • control task 110 will execute a single function for a
  • PRESS message 201 or RELEASE message 202 received from touchscreen task 125 (or remote task 113) and will send appropriate messages to the display task 119 and other n tasks to perform the user requested action.
  • 'ctrl_state' variable contains the current state of the control task 110 and this variable is used to index into a first look up table 210, 'ctrl_state_tbl[ ] ' , which contains constant data relevant to each of the many 5 particular machine states.
  • a pointer to a second LUT 220 which contains a list of screen objects (indexed by OBJ_XXX) that are "touchable" for the current control state.
  • This second LUT is available to both the touch task and remote control task for ° messaging the control task upon ' touch/untouch' (for
  • the control task 110 uses the 'set_system' function to start a requested surgical procedure and will set up the procedure using default or current user's preferences.
  • the information relevent to each surgical procedure is contained in a LUT (not shown).
  • Each task's state driven processes are implemented in C language files. For instance, in the preferred embodiment of the contrtol task, one file is created that contains the execution state logic for detecting messages and executing the PRESS and RELEASE functions upon receipt of touch and release messages from the touch task or remote task. Additional support functions that are responsible for effecting a control
  • 15 state change (for e.g., execution state) and for setting up a selected surgical procedure are contained in another file.
  • a group of files may be created that contains all functions that are executed upon the PRESS and RELEASE of a particular screen object. It is -- understood that one skilled in the art may desire to incorporate any number of the above-mentioned and hereinafter described functions in a myriad of equivalent ways.
  • the display task 119 provides for the display of all screen objects. At power up, this task initializes the graphics adapter for VGA 640 x 480 16 color mode, initializes the RGB values, and sets the palette for the ° IDLE mode. Thereafter, as shown in Figures 10 and
  • the display task updates certain parameters currently displayed at a 0.5 second rate. These parameters include the "actual value” bars, described above, and those parameters which indicate 2 some system value (for e.g., phaco energy).
  • the display of screen objects itself is based on a list of objects which describe each object's type, table index, and palette color.
  • the array Obj_list'[] of structures provides the necessary information for the display task ⁇ ⁇ 119 to reference other look-up tables that provide type- specific parameters such as screen position, text font, icons, etc.
  • the type index field of Obj_list[]' is used to index into the 'type table' where detailed attributes of the object are found. These include 12 screen coordinates and any additional other pointers needed.
  • Each object type has a corresponding function that is executed to build and display that object type in its current state.
  • each of the 16 colors per palette points to one of the 48 RGB color entries which is initialized by the
  • each of the different system modes has a unique palette associated with it.
  • This lookup table of palettes uses defined constants (PAL_xxx) to index the required palette. This method of color control is transparent to the DISPLAY task and only indirect references to each object's color are required by this task.
  • the DISPLAY task 119 An important data structure lookup table is used by the DISPLAY task 119 to provide overall control of the screen for all modes.
  • the ' surg_proc_data[ ] ' structure array provides all necessary information for the DISPLAY task to manage both screen windows.
  • the CRT display 19 is implemented as a layered series of screens. Messages are received from control task (state 1.1 in Figures 28(b) and 28(d) indicating in which layer to place a specific screen. Control task
  • FIG. 110 will then sequence through its process states to paint the objects for the specified screen.
  • Screens are defined as to which objects and text appear in each window, palette information, and other ancillary data required to properly paint the specified screen on the specified layer.
  • the state diagram implementation of the display task 119 is illustrated in Figures 28(b) through 28(d).
  • the state diagram of Figure 28(e) describes the process of painting a real time bar graph on the CRT display.
  • This task also receives messages from the warning task 109 as shown in Figures 3 and 281a), to display a warning panel and to restore the previous screen.
  • This display task is responsible for taking coordinate information from its interface driver ts_driver task 115, determining which object, if any, has been touched or untouched, and forwarding a message to control task 110.
  • This code lists all objects that are valid touch objects for the current state of the screen display.
  • Control task is responsible for maintaining a pointer to a table which contains a subset of screen objects to be scanned by the touch task 125.
  • Figure 12 is a state diagram of the TASK TOUCH process code. After initialization, i.e., state 0,
  • TASK_TOUCH remains in a first state (indicated as state
  • TASK_AT_CTRL resumes execution in a third state indicated as state 290 in Figure 12. If the touch 5 occurred where no valid object exists, no message is forwarded to the control task and execution resumes in a second state indicated as state 280.
  • Bar objects are handled in the third state 290. While in this state, and as long as the object touched is a present bar, " press' messages are continually sent to TASK_AT_CTRL to update the preset bar display.
  • the section of code supporting the touch task will additionally support mouse operation if a touchscreen is not installed on the display.
  • the state driven code is identical, except that touch/untouch information is obtained from calls to " mouse routines instead of from TASK_TS_DRV.
  • the ts_driver task 115 is the driver interface p between the Touchscreen Controller connected to COM1, which is an RS-232 serial communications port 116 and the touch task 125.
  • the driver code for performing the ts_drive process simply provides, as an output to TASK TOUCH, information indicating if the touchscreen
  • FIGs 13 and 14 illustrate repective state and data flow diagrams between the touch screen driver task and touch task. As shown in Figure 14, the ELOGRAPHICS
  • Touchscreen Controller 15' interfaces to the microsurgical system through COM1.
  • the controller will
  • Each received packet 104a contains (2) bytes of raw data representing both X and Y coordinates. This raw data is stored in the array 'xy[4]' for subsequent conversion from 4095 (X) to 640 and from 4095 (Y) to 480 to match the display resolution.
  • This task must also provide untouch data which is not directly provided by the Touchscreen controller. This is implemented by starting a (0.1 s) timer upon receiving touch data as shown in the state diagram of Figure 13. If the timer times-out without receiving
  • ts_driver task 115 provides a flag 106b to indicate that touch data is available and whether the data applies to a
  • the TASK_IR_REM hereinafter remote control task 113, receives messages from a TASK_EXT_232 (described below) to indicate that a key on the remote control unit 13 has been pressed. This remote control task forwards 0 a message to control task 110 in the identical message format as touch task 125, thus, simulating an 'object
  • Control task 110 responds to these messages "" identically regardless of the source (touch task or remote control task) .
  • Figure 15(a) illustrates the remote control keys 215a -215 that are provided on the remote control unit 13.
  • Remote key codes are defined and the task 113 filters these key codes as received from ext 232 task. Based on the current surgical procedure, the task 113 determines the validity of the remote key, and if appropriate, forwards a message to control task.
  • the task 113 supports REPEAT remote key functions for the two (2) arrow keys 213,214 used to increment or decrement presets. Surgical procedure remote keys function differently than manual touches on the Touchscreen because the keys do not act as toggles as ⁇ the touches do. To change preset values for the current procedure using the remote control keys, the procedure (module key) must first be pressed followed by either arrow key 213,214.
  • the task Upon receiving a remote key code from the ext 232 ⁇ J task, the task 'illuminates' the remote control push button on the CRT display to visually indicate remote key detection.
  • the task also handles low battery codes and contains line-of-sight-obstruction logic.
  • the remote module push button (MOD_4) is illuminated upon receiving remote key codes. This module push button is illuminated during the four second delay while waiting "' for subsequent key codes for the time the unit is in state 7.2 as illustrated in Figures 16(a) - 16(j). This module push button is released after the four seconds if no additional arrow keys are received.
  • FIGS. 16(a) through 16(j) ⁇ show the state logic implementation of remote control task 113.
  • the selection of remote control unit key 215j in Figure 15(a) enables remote control of the bipolar module as illustrated in the state diagram of Figure 16(a).
  • Selection of key 215g in Figure 15(a) ⁇ enables remote control of the phaco module as illustrated in the state diagram of Figure 16(b).
  • Selection of key 215f in Figure 15(a) enables remote control adjustment of phaco pulse mode as illustrated in the state diagram of Figure 16(c).
  • Selection of key 215 ⁇ in Figure 15(a) enables remote control of the cutter function as illustrated in the state diagram of Figure 16(d).
  • Selection of key 215c in Figure 15(a) enables remote control of the infusion/aspiration module as illustrated in the state diagram of Figure 16(h), --' while selection of keys 215d and 215e enables remote control of infusion flow and vacuum adjustment respectively, as illustrated in the state diagrams of Figures 16(f) and 16(g). Selection of keys 215a and 215b enables remote control of the fiber optics module 3° respectively, as illustrated in the state diagram of
  • Figure 16(i) State diagram illustrated in Figure 16(j) represents the arrow key control logic.
  • each remote control task idles in standby state 1.0.
  • the key code message is filtered in this state and further processing occurs in other states, i.e., state 2.0 for bipolar state, state 3.0 for phaco, state 4.0 for the cutter, state 5.0 for the I/A, state 6.0 for the fiber optics.
  • State 7.0 is used for EOT (end of text) and repeat key processing.
  • the adc task 105 is responsible for determining which channels need to be sampled based on the current surgical procedure and simply sets a bit flag to indicate which channels need to be sampled. All channels, except the Phaco actual power channel, are read at a 200 ms rate. The sampling of these channels is controlled by the system timer interrupt (ISR) rate of 50 ms. Thus, every fourth in interrupt flags the executive to sample the required channels.
  • ISR system timer interrupt
  • Every fourth in interrupt flags the executive to sample the required channels.
  • the LineMaster footswitch channel if enabled, is flagged to be read every 50 ms.
  • the Phaco Power Monitor channel is read on demand by the phaco task. Its value is used to display the ⁇ 2 phaco Actual bar graph and to display Joules of power delivered to the handpiece.
  • the Phaco actual power channel is conditioned on a signal sourced in the Phaco
  • Sampling a specific ADC channel ⁇ reguires setting an analog multiplexer to the desired channel, waiting for multiplexer settling time, starting the ADC conversion, and waiting for results.
  • This task is also responsible for maintaining the " ADC device gain and offset based on values sampled from the Vref (8.192 volts) and the ground channel.
  • the process code for the adc task 105 contains all functions relating to the eight (8) channel ADC.
  • the analog multiplexer switches in one of eight (8) analog sources for 12-bit conversion by the ADC.
  • the eight sources include: the
  • Reading the ADC involves selecting the source by writing a 3-bit pattern (0-7) to select the channel and utilizing 'read_adc()' call. A short delay is required to allow the multiplexer to stabilize.
  • the conversion 0 is started by performing a write to one of the out ports. After a fixed delay, the conversation value can be read as MSB and LSB.
  • the LineMaster (existing footswitch) channel is
  • adc task initiates an ADC calibration sequence. This enables the reading of the Vref and GRND channels 205, and upon completion, calls 'adc_cal()' which checks that the respective channels are within allowable limits, and if so, establishes new ADC gain and offset values. ADC calibration is also performed approximately every 30 minutes in the background by the adc task. If calibration fails, a fatal system warning is flagged.
  • All ADC channel data, raw and post-processed, is stored in 'adc_data[ ] ' .
  • This structure includes a (3)- element raw data buffer, an average value field, and a normalized value field. As each channel is sampled, the raw data is stored in the raw data buffer. The three (3) values are averaged, and the resultant average is normalized and also stored in 'adc_data[] ' . The raw data is then shifted for subsequent reads of that channel. This post-processing is performed by the functions 'adc_proc_data( ) ' and 'adc_avg_shift( ) ' .
  • the dac task is always active and is responsible for continually writing the DAC (digital to analog conversion) values to the proper DAC channels. All tasks assigned a DAC channel output need only to set their values in an array, and this task will handle the actual writing of the DAC channel values. This task does not determine the values because the values are set their respective tasks. Each task is responsible for loading its respective array element of 'dac_val[DAC_CHAN_XXl' .
  • the DAC channels are as - follows:
  • the table 'dac_adr_tbl[8] ' contains the high and low byte addresses for the internal channel assignments.
  • the hardware port addresses for each channel are previously defined as DAC_(XX)_H and DAC_(XX)_L.
  • Dac task 107 is designed as a two (2) state system. As shown in Figure 18, in state 0, the output value array (dac_val[]) is initialized to all zeros.
  • the task counter 1 is initialized to (0) and is used to perform modulo-8 counting of the channels. Execution resumes in state 1 wherein the dac task outputs the value for the channel number contained in counter 1. Counter 1 is then incremented for the next pass to output the remaining channels on subsequent passes from the executive. After writing the last channel (7), a dummy read is performed to latch the output values for all channels.
  • the TASK_EXT_232 (external RS-232 task) is responsible for handling received remote control unit key codes, validating codes and sending a message to the
  • ISR interrupt service
  • Th ext 232 task is a simple state machine driven by the ISR on received characters. As shown in the state diagram of Figure 19(a), state 0 initializes the
  • SCC Channel A for receive only, at approximately 10400 - baud.
  • the task waits for a received character as flagged by the ISR
  • the footswitch task 117 contains all routines associated with both the existing and modified footswitch types. As shown in the state diagram of Figure 20(a), state 0.0 detects, at power up, which of ° the two footswitch types (Linemaster or modified ATXR), if any, is connected to the system 10.
  • state 0.0 detects, at power up, which of ° the two footswitch types (Linemaster or modified ATXR), if any, is connected to the system 10.
  • the existing footswitch states scan the status byte to determine switch states and provide the
  • the modified footswitch 17 provides five (5) mechanical switches, only one of which is position related (top, or full release switch). Of the remaining four (4) switches, one is used for Reflux; the remaining three (3) are reserved for special function initiators.
  • the modified footswitch position information is obtained from an optical encoder (not shown) which provides 12- bits of position data over the full range of motion.
  • Both footswitch types utilize a single output data structure (struct ftsw_info footswitch) which is
  • the data structure is the normalized value of linear range (position 3 to full depression for the existing footswitch, positions 2 to 3 and 3 to full depression for the modified footswitch)).
  • Other fields include booleans for enable/disable, connect/disconnect, type, and discrete positions (1,2 and 3).
  • the modified footswitch discrete positions are not signalled by switches, but rather by the optically encoded linear displacement value read through dedicated ports. These 'position counts' are defined and are used to compare the current position count to determine if the position flags in 'footswitch (.pos_l,2 and 3)' need to be set. This can been seen in state 2 of Figure 20(c).
  • the modified footswitch also provides a signal indicating that the DETENT feature has been engaged. This signal is read through the status byte and causes the DETENT position counts to be used. Footswitch operation is enabled only when required and this task is controlled by control task 110 via the 'footswitch.enable' flag which is scanned in state 1 during full release.
  • the bipolar task 120 is responsible for controlling the bipolar cautery module 20.
  • the module hardware is enabled by bipolar task upon the control task setting 'sys_flags.bip_en' to TRUE.
  • the bipolar task 120 scans the footswitch structure to apply power at position 3 or the side switch for the modified footswitch 17.
  • the Bipolar Module 20 responds to the desired power setting through its assigned DAC channel. This value on this channel will b e either zero or a value representing the preset.
  • TASK_3IP uses the LUT *bip_dac[]' to select the DAC value for the given present value. This table includes DAC values for each percent of power (0 through 100).
  • the bipolar cautery module hardware provides internal faults and flags them in the status byte read by TASK_BIP.
  • TASK_BIP continually monitors this status byte and, if any error is reported, disables the module and generates a warning to inform the user.
  • the module pushbutton is disabled and 'X' -out indicating the faulty bipolar module.
  • the cautery procedure uses the equivalent of
  • the Bipolar Module 20 provides internal fault detection and signalling through its status which is continually monitored by TASK_BIP. If an error occurs, as reported by the status, TASK_BIP will shut down the module and disable the Module Pushbutton. The failure 5 will be indicated by an 'X' through the module icon.
  • the phaco task 130 contains all primary state and support functions to interface to ° the Phaco Module 30, control task and warnings task.
  • the state diagram for the phaco task 130 is depicted in
  • the Phaco Module 30 contains its own 1 microcontroller (HC11) to handle all hardware operations once the module is invoked by the task 130.
  • Interface signalling occurs through standard port I/O and includes module enable, status, and mode information.
  • Power " settings, pulse rate and actual power delivered to the handpiece are analog values assigned on DAC and ADC channels respectively.
  • the phaco task 130 is structured to detect proper phaco handpiece connection, and prompts the user to 1 initiate a required handpiece tuning test to find optimal operating frequency. It is also for driving the Phaco Module in both the Panel and Surgeon modes. User changes to the mode, pulse rate and preset power are all implemented within this task. ⁇ ⁇ 2 Additionally, task 130 also monitors the accumulated duration of energy delivered to the phaco handpiece for display purposes.
  • the Phaco Handpiece test (states 1.1 - 1.5) is initiated the first time the Phaco procedure is selected from power-up state 0.0 in Figure 22. This test is also initiated if the handpiece is removed and subsequently re-connected. (The system assumes a different handpiece has been installed. )
  • the Phaco Module internal processor (not shown) 5 also monitors handpiece disconnect and flags this task (through the status byte) to indicate that a handpiece test is required. The user is informed of all handpiece exceptions through display panels managed by warning task 109. The handpiece test is initiated by driving a ° bit in the Phaco module interface. This task will start a 30 second timer limit to complete the test. If the
  • State 2.0 the system waits for the footswitch to be depressed to position 3 before delivering power to the handpiece.
  • phaco task 130 transits to either state 2.1 for linear/surgeon mode, or to state 2.2 for panel mode, 1 and sets either PULSE or CONTINUOUS mode as necessary. Execution continues in those states until footswitch position 3 is no longer sensed. Power out is set by a DAC channel.
  • Pulse rate may be changed by the user only when -0 the footswitch is not depressed.
  • the pulse rate is continually updated by calling 'set_pls_rate( ) ' .
  • This function sets the DAC channel assigned to pulse rate to a value interpreted by the Phaco Module processor to be between 1 and 15.
  • the ⁇ equation used to set this value is:
  • the DAC value ( ( 2 * Pulse Rate) - 1 _ * 128
  • the DAC value will have a value in the range of 128 to 3712.
  • the Phaco microcontroller (not shown) will perform the inverse of 3 this equation to acquire the pulse rate (1-15).
  • Phaco power delivered to the handpiece is ⁇ available at one of the ADC channels. This value is always valid in CONTINUOUS mode.
  • PULSE mode the Phaco Module provides a status bit which indicates if the current value is valid. Because PULSE mode uses a 50% duty cycle, average power delivered is the ADC value divided by 2. Actual power delivered is used for the display of accumulated energy (JOULES) and elapsed time. This process is performed by the functions 'get_phaco_pwr( ) ' and chk_time_energy( ) ' .
  • the Phaco actual power bar display 34 in Figure 4(a) does not represent actual power. Instead, this value ( 'phaco_act_val' ) represents the percentage of maximum power applied to the handpiece and is a function of a preset in Panel mode or a present AND the ⁇ 2 footswitch displacement in linear mode.
  • the cutter task 140 contains all functions that controlling the interface to the Cutter hardware and - ⁇ handpiece located in the I/A-Cutter Assembly (modules
  • GUILLOTINE CCW
  • ROTATING CW
  • OSCILLATING reverse direction every 350 ms
  • OSCILLATING mode is fixed at 400 cpm.
  • Speed control is provided by a PID-type control algorithm that compares the actual speed versus the ° desired speed in cuts-per-minute (CPM). Actual cutter speed is registered through two (2) 8254 counters (not
  • This task controls and monitors these counters to obtain speed control to within ⁇ 10% of the desired preset cpm value.
  • a single DAC channel is used to output the desired cpm value dynamically to
  • This task also monitors the connection of the handpiece 40' and will flag a warning to the user if the handpiece connection is faulty or lost during operation.
  • Cutter task 140 contains state-driven logic to drive and to stop the cutter in this open position. If correct homing is not achieved j ⁇ -" after three (3) successive attempts, this task flags a warning to indicate a failed handpiece.
  • cutter operation begins in state 1.0 where the
  • TASK_CUTT__R confirms that a handpiece is connected and then proceeds to home the cutter shaft.
  • aigo ⁇ thm and is range limited to preferably 0-400.
  • a new preset multiplier is calculated and used for subsequent values output to the DAC.
  • This multiplier is the ratio r of corrected cpm value to desired cpm value and dynamically adjusts itself based on the current load conditions.
  • the OSCILLATING mode (state 1.6 in Figure 23) uses a preset speed of 400 CPM and cannot be adjusted by "i n ⁇ ⁇ the user. In this mode, the cutter shaft must reverse its direction every 350 ms (7 system timer interrupts).
  • Each counter counts-down from 32767.
  • the number of kHz pulses counted during any shaft rotation is converted to C(R)PM and this value represents the actual speed used for display and speed control purposes.
  • the cutter direction must be reversed every 350 ms.
  • timer ISR will effect this direction reversal every seven (7) interrupts.
  • the timer ISR is also responsible for reversing the direction of the Cutter rotation every 350 ms if the ° cutter is in the OSCILLATING mode. This is flagged to the system timer ISR by 'sys_flags.cutr_osc' . If the
  • the ISR will respond by calling functions the task " process and provide some filtering of the values read from the cutter speed counters.
  • This process code for this task contains many short routines used to set cutter direction, speed, run or stop, as well as to check cutter status indicating handpiece connection and index state.
  • the I/A task 150 is responsible for driving either the PERISTALTIC or ROTARY VANE I/A-Cutter modules (40 and 50) in the system.
  • a system configuration requirement allows for a ROTARY VANE pumping system only with the modified footswitch 17.
  • the peristaltic I/A pumping system is allowed with either footswitch type (modified or exisitng type).
  • I/A task 150 is also responsible for controlling solenoids for either pumping system. It • a _ -
  • Vent/Reflux solenoid This is accomplished by using one of the 8254 counters to provide a 17 ms delay after closing the infusion solenoid. The vent solenoid is then activated for 250 ms.
  • the user may select one of three (3) infusion modes during any procedure which uses I/A. These modes are Infusion OPEN, CLOSED and AUTO (activate/de-activate at footswitch position 1).
  • ⁇ ⁇ 2 system involves controlling the flow rate of fluid away from the eye. This peristaltic action is part of a motor assembly whose speed is a function of the user selected Flow Rate preset which is assigned a DAC channel. A pressure (vacuum) transducer is continually - J monitored by this task to ensure that the developed vacuum does not exceed the vacuum preset value.
  • the ROTARY VANE pumping system involves controlling the speed of a motor that directly develops a vacuum as fluid is drawn from the eye.
  • ⁇ pressure transducer is monitcred by the IA task 150 to ensure that the developed vacuum does not exceed the preset vacuum value.
  • Each ROTARY VANE pumping system has its own response curve (vacuum vs. control voltage).
  • the Rotary Vane proportional valve is used to control vacuum at levels below 100 mmHg.
  • I/A task 150 will load a LUT with proportional valve values based on 2 data points contained in the serial number PROM. 10 I/A task 150 uses the flag
  • the DAC output value accesses the 'v_vs_p[]' lookup table to obtain the DAC value on
  • the RV system also requires a DAC output to the proportional valve (primarily used at low vacuum levels.)
  • TASK_IA generates the required DAC value for 5 the proportional valve.
  • the PERI system requires a DAC output to drive the peristaltic pump motor to achieve the desired flow rate. This value is calculated directly as a function of flow preset and footswitch pedal displacement. ° As shown in Figures 24(a) - 24(f) the I/A_task supports both the Rotary Vane and Peristaltic pumping
  • An I/A ⁇ procedure may be invoked by the user as a single procedure or as part of either vitrectomy or phacoemulsification. If I/A is the single procedure, this task will start the infusion/aspiration process at ' footswitch position 3. If I/A is utilized as part of either vitrectomy or phacoemulsification, infusion/aspiration starts at footswitch position 2. This task also supports all solenoid activity associated with the infusion/aspiration process.
  • i/a task 150 (whether Rotary Vane or Peristaltic) initializes all solenoids to their inactive states (state 0). In state 1.0, indicated as state 151, this task waits for an I/A procedure to be selected by the l ⁇ " user. (sys_flags.ia_en) . When the user selects I/A,
  • I/A_task 150 sets the module hardware enable signal, and if the infusion mode is OPEN, activates the infusion solenoid and continues in state 2.0, indicated as state
  • I/A task 150 looks for messages from control task 110 that requests Cassette load/unload, Priming 153. If no messages are received,
  • the Fiber Optic control task 160 is responsible for determining the integrity of both bulbs A and B upon power up and thereafter and contains the primary state
  • the fiber optic control process is structured as a state machine as shown in Figure 25. This process
  • display icons reflect the status of the
  • the task 160 is also responsible on J for switching between bulbs A and B upon user request or upon detecting a failed bulb. Intensity control is accomplished by outputting an analog voltage which controls the dilation of an iris. A DAC channel is assigned to this output control voltage.
  • the Fiber Optic system is totally independent of any surgical procedure and may be activated at any time. As shown in Figure 25, upon power-up (state 0.0), fiber optics task 160 goes 'busy' until the shuttle is positioned at a known good bulb (A or B). The default ° position is A; however, if a continuity check on A fails, bulb B is selected by the code. If bulb B is
  • the fiber optics task 160 goes to 1 the error State 2.0 ( Figure 25) and remains inactive.
  • the task removes the 'busy' flag which indicates " to control task that the task 160 has completed its multi-state power-up sequence.
  • the Fiber Optic hardware module provides status indicating bulb continuity. Additionally, status includes a photo-sensor output signal indicating that the illuminated bulb is in fact ON. This status is continually read in the background to determine the integrity of each bulb.
  • Bulb selection is accomplished by either the user selecting A or B (fib_optics.sel_ab) , or by the task -* code determining that the current position bulb is bad, and the other is good, resulting in an automatic shuttle to the good bulb.
  • switching bulb positions involves removing the module enable output which disables bulb illumination, selecting the bulb position, delaying for shuttle motion, deselecting both bulbs, re-enabling the module to obtain status, and finally, selecting the bulb to illuminate.
  • Iris control is an analog signal assigned to a DAC channel. As shown at state 1.1 (for bulb A ) and state 3.1 (for bulb B) in Figure 25, the user may change intensity only while the Fiber Optics is ON.
  • the fiber optics task uses the data structure 'struct fib_opt_def fib_ ptics' to maintain relevant flags and operational values. These include bulb status (.a_ok and .b_ok_) , error flag and code (.fo_err and ⁇ A 7 -
  • the warning task 109 is responsible for processing all types of conditions that involve notifying the user (through pop-up warning display
  • any system exception that may be detected in any of the various tasks. These range from fatal operating system errors to simply prompting the user to Continue or Cancel a Phaco handpiece test.
  • the warning task is always running and handles only one condition at J a time. All conditions detected and flagged to the user by displaying a 'warning' panel on the CRT display 19 which states the exception condition to the user, and, are accompanied by a short, two (2) tone audio burst. Once the condition is cleared, this task restores the 0 display via a message to display task 119. All exception conditions are defined by type to accommodate differing degrees of severity and action to be taken.
  • the warning task is state driven as are all system 10 tasks.
  • This task in its 5 "normal” state scans an array of warning flags that are set by the respective "detecting" task. Specifically, when an exception is detected, the detecting task sets 'warn_flags[condition] ' to TRUE. When the exception condition is cleared, the detecting task must clear the ° 'warn flagsH' element to FALSE.
  • the flags in 'warn_flags[ ] ' match a 'warn_tbl[]' structure which defines the attributes of the particular exception condition. These include type, user action push buttons, etc. (The 'warn_flags. ] ' structure is previously defined, as is the 'warn_tbl[] ' structure.)
  • the warning task 109 accesses this table to determine how to process the condition. All warnings are previously "typed” to determine the action required by the warnings task in order to properly process the condition. This structure easily supports additional warnings at any time. The method by which the warning task 109 processes a particular warning "type” is by simply switching to another state and waiting for the "type” condition to be removed and normal system operation to resume accordingly.
  • warning task 109 when in state 1.0, the warning task scans the 'warn_flags. ] ' array, one element per RTOS (EXEC) pass. If a flag is set, the condition type is determined from the 'warn_tbl[ ] ' , and a message to display task 119 is sent to display the specific warning display panel for the user. In state 2.0, warning task 109 sends a message to audio task 111 to sound the two (2) tone alert burst, and execution resumes in either state 2.2 or 2.3.
  • EXEC RTOS
  • the process code for the audio task 111 provides the primary state functions and the audio task state diagram is illustrated in Figure 27. As described briefly above, this task receives messages from the warning task 109 whenever a system exception condition exists and a warning message is displayed to the user. - . 9 *
  • the message is accompanied by a two (2) tone burst ⁇ emanating from speaker 11 ( Figure 2).
  • This task is also responsible for sounding continuous tones at one (1) of four (4) pitches based on the current vacuum actual value (as a percentage of a preset value) and utilizes - the 'sound(freq) ' and 'nosoundU' utility functions (provided by Borland's library routines). These functions, along with 'wake_me_up(W_TMR_CNT, SEC_XX_X, ...)', provide the timing of the tone bursts.
  • audio task 111 continually compares the actual vacuum value with the calculated percentage values of the vacuum present value. Tones begin to sound at 20% above the preset value. The tones then sound at different frequency for each of the remaining 20% ranges (20-40%, 40-60%, 60-80% and 80-100%). If the actual vacuum value exceeds the preset value, a four (4) tone burst sounds. This is followed by a continuous tone for the maximum range.
  • the volume for all audio output is fixed; however, the hardware supports variable volume through an assigned DAC channel.

Abstract

Un système de commande orienté, objet destiné à être utilisé par un chirurgien en chirurgie ophtalmique, présente une pluralité de modules (par exemple, 20, 30, 40, 50) conçus pour commander les tâches d'une pluralité d'instruments de microchirurgie et répondant chacun à un signal de commande de données commandant le fonctionnement de ses instruments respectifs. Un dispositif de commande informatique (10) reçoit les instructions de commande entrées par un chirurgien et demande un ou plusieurs objets de programme informatique alors que le système de commande interroge périodiquement le champ de commande de chaque objet de programme informatique pour déterminer l'état de chaque tâche sélectionnée et valider ou invalider l'exécution des fonctions en fonction de l'état évalué pour générer des signaux de commande de données et commander le fonctionnement des instruments.
PCT/US1995/013594 1994-10-28 1995-10-27 Systeme de commande pour chirurgie ophtalmique WO1996013216A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU40068/95A AU4006895A (en) 1994-10-28 1995-10-27 Control system for opthalmic surgery

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US33092694A 1994-10-28 1994-10-28
US08/330,926 1994-10-28

Publications (2)

Publication Number Publication Date
WO1996013216A1 WO1996013216A1 (fr) 1996-05-09
WO1996013216A9 true WO1996013216A9 (fr) 1996-08-15

Family

ID=23291897

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1995/013594 WO1996013216A1 (fr) 1994-10-28 1995-10-27 Systeme de commande pour chirurgie ophtalmique

Country Status (2)

Country Link
AU (1) AU4006895A (fr)
WO (1) WO1996013216A1 (fr)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6007553A (en) * 1996-02-07 1999-12-28 Hellenkamp; Johann F. Automatic surgical device control assembly for cutting a cornea
US6051009A (en) * 1996-02-07 2000-04-18 Hellenkamp; Johann F. Automatic surgical device for cutting a cornea and a cutting blade assembly and control assembly
ES2222518T3 (es) * 1996-08-29 2005-02-01 BAUSCH & LOMB INCORPORATED Control de frecuencia y de potencia de dos bucles.
WO1998025556A1 (fr) * 1996-12-11 1998-06-18 Chiron Vision Corporation Commande a distance de console de commande pour chirurgie ophtalmique
US6602227B1 (en) * 1998-09-25 2003-08-05 Sherwood Services Ag Surgical system console
JP4590128B2 (ja) 2001-05-18 2010-12-01 株式会社モリタ製作所 機能モジュール型の歯科用診療機器、この診療機器用の機能モジュール、この機能モジュールを用いる歯科用診療装置及び診療用機能モジュールユニット
US7945341B2 (en) 2004-11-30 2011-05-17 Alcon, Inc. Graphical user interface for selecting pulse parameters in a phacoemulsification surgical system
US8075509B2 (en) 2005-08-25 2011-12-13 Gambro Lundia Ab Medical apparatus
US10959881B2 (en) 2006-11-09 2021-03-30 Johnson & Johnson Surgical Vision, Inc. Fluidics cassette for ocular surgical system
DE102007031718B4 (de) * 2007-07-06 2012-12-06 Carl Zeiss Meditec Ag Kommunikationseinrichtung für ein chirurgisches System und chirurgisches System, insbesondere ophtalmisches mikrochirurgisches System zur Phako-Chirurgie
US9971870B2 (en) * 2007-08-15 2018-05-15 Johnson & Johnson Surgical Vision, Inc. Systems and methods for managing and distributing user profiles for surgical systems
US8854221B2 (en) 2008-12-19 2014-10-07 Bausch & Lomb Incorporated System to identify viscosity of aspirated material during ophthalmic surgery
US8790303B2 (en) 2009-03-09 2014-07-29 Thermedx, Llc Fluid management system heater assembly and cartridge
US9474848B2 (en) 2009-03-09 2016-10-25 Thermedx, Llc Fluid management system
DE102009042428B4 (de) * 2009-09-21 2016-08-11 Erbe Elektromedizin Gmbh Versorgungseinrichtung zum Betreiben mindestens eines medizinischen Instruments, Verfahren zur Erzeugung eines Steuerprogramms
EP2486883B1 (fr) * 2011-02-14 2014-04-23 Erbe Elektromedizin GmbH Dispositif d'alimentation
AU2012348191C1 (en) 2011-12-08 2017-04-20 Alcon Inc. Selectively moveable valve elements for aspiration and irrigation circuits
EP2825219B1 (fr) 2012-03-17 2023-05-24 Johnson & Johnson Surgical Vision, Inc. Cassette chirurgicale
EP2961443B1 (fr) * 2013-02-26 2021-06-02 Johnson & Johnson Surgical Vision, Inc. Dispositif, système et procédé pour évaluer l'orientation et l'alignement d'une cassette chirurgicale
US9295582B2 (en) * 2013-03-13 2016-03-29 Abbott Medical Optics Inc. Fluidics adjustment techniques for use in a surgical procedure
US9549850B2 (en) 2013-04-26 2017-01-24 Novartis Ag Partial venting system for occlusion surge mitigation
US9770541B2 (en) 2014-05-15 2017-09-26 Thermedx, Llc Fluid management system with pass-through fluid volume measurement
AU2016373543A1 (en) 2015-12-16 2018-06-07 Alcon Inc. Systems and methods for a hand-controllable surgical illumination device
US10939815B2 (en) 2016-11-21 2021-03-09 Alcon Inc. Systems and methods using a vitreous visualization tool
WO2018091991A1 (fr) 2016-11-21 2018-05-24 Novartis Ag Système et procédé de visualisation du vitré
DE102018216085A1 (de) * 2018-09-11 2020-03-12 Geuder Ag Verfahren zur Steuerung eines augenchirurgischen Gerätesystems sowie ein augenchirurgisches Gerätesystem
GB2603904B (en) * 2021-02-17 2023-07-26 Keymed Medical & Industrial Equipment Ltd Fluid management system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4580557A (en) * 1983-08-22 1986-04-08 Laserscope Surgical laser system with multiple output devices
US4837857A (en) * 1986-11-06 1989-06-06 Storz Instrument Company Foot pedal assembly for ophthalmic surgical instrument
US5098426A (en) * 1989-02-06 1992-03-24 Phoenix Laser Systems, Inc. Method and apparatus for precision laser surgery
JPH05168658A (ja) * 1991-12-03 1993-07-02 Topcon Corp 眼科手術装置

Similar Documents

Publication Publication Date Title
WO1996013216A9 (fr) Systeme de commande pour chirurgie ophtalmique
WO1996013216A1 (fr) Systeme de commande pour chirurgie ophtalmique
US9980740B2 (en) Powered surgical system
US5580347A (en) Controlling operation of handpieces during ophthalmic surgery
JP2938176B2 (ja) 手術制御システムのための遠隔制御コンソール
AU723829B2 (en) Numeric keypad simulated on touchscreen
AU2009313417B2 (en) Method for programming foot pedal settings and controlling performance through foot pedal variation
US4770654A (en) Multimedia apparatus for driving powered surgical instruments
US4768506A (en) Handpiece drive apparatus for powered surgical scissors
US7083608B2 (en) Medical apparatus and medical system
AU2001270184A1 (en) Ribbon switch in surgical footpedal control
WO1995000086A1 (fr) Procede de phaco-emulsification utilisant deux variables vide/ecoulement
CN118103012A (zh) 动态激光脉冲控制