CA1326554C - Real time angioscopy imaging system - Google Patents
Real time angioscopy imaging systemInfo
- Publication number
- CA1326554C CA1326554C CA000583078A CA583078A CA1326554C CA 1326554 C CA1326554 C CA 1326554C CA 000583078 A CA000583078 A CA 000583078A CA 583078 A CA583078 A CA 583078A CA 1326554 C CA1326554 C CA 1326554C
- Authority
- CA
- Canada
- Prior art keywords
- imaging system
- angioscopy
- irrigation
- printf
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00002—Operational features of endoscopes
- A61B1/00043—Operational features of endoscopes provided with output arrangements
- A61B1/00045—Display arrangement
- A61B1/00048—Constructional features of the display
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00002—Operational features of endoscopes
- A61B1/00039—Operational features of endoscopes provided with input arrangements for the user
- A61B1/0004—Operational features of endoscopes provided with input arrangements for the user for electronic operation
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00002—Operational features of endoscopes
- A61B1/00043—Operational features of endoscopes provided with output arrangements
- A61B1/00045—Display arrangement
- A61B1/0005—Display arrangement combining images e.g. side-by-side, superimposed or tiled
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00064—Constructional details of the endoscope body
- A61B1/00071—Insertion part of the endoscope body
- A61B1/0008—Insertion part of the endoscope body characterised by distal tip features
- A61B1/00085—Baskets
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00064—Constructional details of the endoscope body
- A61B1/00071—Insertion part of the endoscope body
- A61B1/0008—Insertion part of the endoscope body characterised by distal tip features
- A61B1/00091—Nozzles
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/00131—Accessories for endoscopes
- A61B1/00135—Oversleeves mounted on the endoscope prior to insertion
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/04—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor combined with photographic or television appliances
- A61B1/042—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor combined with photographic or television appliances characterised by a proximal camera, e.g. a CCD camera
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/12—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor with cooling or rinsing arrangements
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/313—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor for introducing through surgical openings, e.g. laparoscopes
- A61B1/3135—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor for introducing through surgical openings, e.g. laparoscopes for examination of the epidural or the spinal space
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/313—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor for introducing through surgical openings, e.g. laparoscopes
- A61B1/3137—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor for introducing through surgical openings, e.g. laparoscopes for examination of the interior of blood vessels
-
- A—HUMAN NECESSITIES
- A61—MEDICAL OR VETERINARY SCIENCE; HYGIENE
- A61B—DIAGNOSIS; SURGERY; IDENTIFICATION
- A61B1/00—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor
- A61B1/012—Instruments for performing medical examinations of the interior of cavities or tubes of the body by visual or photographical inspection, e.g. endoscopes; Illuminating arrangements therefor characterised by internal passages or accessories therefor
- A61B1/015—Control of fluid supply or evacuation
Landscapes
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Surgery (AREA)
- Biomedical Technology (AREA)
- Medical Informatics (AREA)
- Optics & Photonics (AREA)
- Pathology (AREA)
- Radiology & Medical Imaging (AREA)
- Biophysics (AREA)
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Heart & Thoracic Surgery (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Molecular Biology (AREA)
- Animal Behavior & Ethology (AREA)
- General Health & Medical Sciences (AREA)
- Public Health (AREA)
- Veterinary Medicine (AREA)
- Neurology (AREA)
- Orthopedic Medicine & Surgery (AREA)
- Endoscopes (AREA)
Abstract
ABSTRACT
An angioscopy imaging system which operates under the control of a computer system includes an optical scanning system which is inserted into a vessel, such as an artery, for generation of an image. An irrigation system provides pulsatile introduction of flush solution to the vessel to create clear a viewing field within the vessel for the optical scanning system. The computer system controls both the optical scanning system and the irrigation system such that the generation of the image is synchronized with the pulsatile introduction of the flush solution.
An angioscopy imaging system which operates under the control of a computer system includes an optical scanning system which is inserted into a vessel, such as an artery, for generation of an image. An irrigation system provides pulsatile introduction of flush solution to the vessel to create clear a viewing field within the vessel for the optical scanning system. The computer system controls both the optical scanning system and the irrigation system such that the generation of the image is synchronized with the pulsatile introduction of the flush solution.
Description
~ 3 ~
REAL TIME ANGIOSCOPY_IMAGING SYSTEM
Background of the Invention 1. Field of ths Invention The present invention relates to apparatus for direct visualization of body passages and, in particular, to an automated angioscopy imaging system that provides pulsatile irrigation coupled with synchronous real time imaging.
lo 2. Discussion of the Prior Art It is well-known that optical scopes may be used for direct visualization of body passages. For example endoscopes are used for viewing the gastrointestinal tract/ bronchoscopes are used for viewing bronchial passages, and arthroscopes are used for joint examination. These scopes are moved to a position within the body that the viewer desires to examine. The body passage is then visualized directly through the eyepiece of the scope or a video camera is attached to the scope to display the image on a video monitor.
An angioscope is used for viewing both the arterial and the venous systems. In the angioscopy procedure, a fiberoptic scope is inserted into the vessel through an incision and then threaded through the vessel to provide visualization at selected points along the length of the vessel. Sterile saline flush solution is introduced continuously into the vessel to provide a clear visualization field.
Angioscopy i5 a particularly difficult procedure in the arterial system. The pressure and the flow rate of the blood are much higher in the arteries than in the veins, making it difficult to obtain the clear, bloodless field required for the desirad quality of visualization. If only a small amount of saline is used to flush away the blood, this flush is washed away too r;
quickly to allow adequate visualization. On the other hand, if a larger amount of flushing solution is used, over a time period sufficient to allow adequate visualization, complications will arise. First, fluid overload of the patient will occur, causing electrolyte imbalance or congestive heart ~ailure~ Second, there will be a lack of perfusion to the tissue supplied by the artery undergoing angioscopy because the flushing fluid has cleared away the oxygen-carrying blood. This problem is particularly difficult in angioscopic evaluation of the coronary arteries, since the cardiac muscle cannot tolerate prolonged ischemia. Balloon occlusion may be used, but it too may cause ischemia.
'rherefore, it would be highly desirable to have available an angioscopy system that provid~s clear visualization within the irrigation constraints described above.
Summary of the Invention An angioscopy imaging system in accordance with the present invention utilizes controlled saline irrigation to clear the viewing field and a synchronized, high-resolution imaging system to capture a high quality digitized image and hold it for viewing in real time.
During the irrigation cycle, the angioscope image is projected directly on a video monitor. The image is saved on the monitor during the flush-interrupted cycle and then updated with the next active flush cycle.
This technique allows constant visualization of the artery, with second-by-second evaluation of the catheter position within the artery. It provides a real-time image of the artery, while allowing ~lood flow to occur ``
over a large proportion oP time. This decreases the danger of incurring ischemia during visualization.
: ,.
, ~
.
:: .
,; . :, , . .
5 ~`J ~:
An angioscopy imaging system in accordance with the present invention utilizes a catheter which houses ~he angioscope and provides a flushing channel which allows irrigation at the distal end of the angioscope. The saline flush creates a bolus which is visually clear over the focal distance of the angioscope. The pulses of pressurized saline are delivered on command ~rom a computer system. The computer may be programmed to deliver a sequence of timed irrigations, or a single pulse may be delivered by means of a foot pedal switch connected to the computer.
Both the fiber optic angioscope and the irrigation catheter are placed inside a narrow blood channel and, immediately, a digitized picture is generated by a digitizer board and displayed on a monitor in real time.
The main function of the computer is to allow the user to predefine the duration of the period during which saline solution is injected into the blood channel~ thus clearing the viewing end of the angioscope and its surrounding. While the solution is being injected, a continuous live picture is also being generated on a ~eparate monitor. At the end of the irrigation period, saline injection stops and the computer commands a freeze procedure, thus preserving the last image on the live monitor. The digitized image is periodically refreshed until a new, updated image is displayed in conjunction with the subsequent flush cycle.
The system program provides the user with absolute freedom in determining the l~ngth of the irrigation period to yield the best possible display, but with certain limitations so that it will not jeopardize the overall operation. The high speed digitizer allows for sufficiently short irrigation periods so that images are provided to the viewer in real time. With the image being frozen in time, any image processing functions can . . , ~ ., .
~ , ~
: . ., .. , ~
1 3 hl t~
then be performed, such as save, zoom, change colors, move around and many others.
The system design utilizes state-of-the-art image processing and fiber optic camera technology. As stated above, the computer system controls all of the timing functions of the system and captures images for instantaneous, uninterrup~ed viewing. Each of the images can be individually processed or stored as a single picture to be callad up for later display or to be printed as a slide for later presentation.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilizedl Brief Description of the Drawinqs Fig. 1 is a block diagram illustrating the general concept of an angioscopy imaging system in accordance with the present invention.
Fig. 2 is a pictorial illustration of an angioscopy imaging system in accordance with the present invention in an operating room environment.
Fig. 3 is a schematic diagram illustrating an angioscope catheter and irrigation system for an angioscopy imaging system in accordance with the prasent invention.
Fig. 4A is a pictorial view illustrating an angioscope centering catheter utilized in accordance with a preferred embodiment of the present invention.
Fig. 4B is a pictorial view illustrating the distal end of the angioscope centering catheter shown in Fig. 1 after splaying of the longitudinal slitted sections.
,:. ,. :
- ~.: . .. . . . :
:.-. : , .
-Fig. 4C is a cross-sectional view illustrating the catheter shown in Fig. 4A in a curved section of vessel prior to centering.
Fig. 4D is a cross-sectional view illustrating the catheter shown in Fig. 4A in a curved section of vessel after centering.
Figs. 5A-5H provide a series of schematic drawings illustrating a synchronized flush/imaging sequence in accordance with the present invention.
lo Fig. 5I is a timing diagram illustrating an automatic synchronized flush~imaging sequence in accvrdance with the present invention.
Fig. 6A is a cross-sectional view illustrating the use of a catheter ~or saline flush against blood flow.
Fig. 6B is a cross-sectional view illustrating the use of a catheter for saline ~lush with blood flow.
Fig. 7 is a cross-sectional view illustrating intraoperative angioscopy.
Figs. 8A and 8B are cross-sectional views illustrating introduction o~ flush solution utilizing a de~lector shield.
Fig. 9 is a schematic diagram illustrating a Truevision digitization board which has been altered as shown for application in accordance with the present inventiGn.
Fig. 10 is a schematic diagram illustrating a communications relay board utilized in the angioscopy imaging system shown in Fig. 1.
Fig. 11 is a pictorial illustration of a handset utilized in the angioscopy imaging system shown in Fig.
1.
Fig. 12 is a schematic diagram illustrating the circuitry of the handset shown in Fig. 11.
Fig. 13 is a flow sheet illustrating the function o~ the software provided in Appendix A.
- . , ~ ; , , ~ ., ; , .
ri ~ i~
Detailed Description of the Invention An angioscopy imaging system in accordance with the present invention is illustrated in Figs. 1-3, wherein like reference numerals specify like elements.
Fig. 1 provides an illustration of an angioscopy imaging system in accordance with the general concept of the present invention. The system operates under the control of a computer system which includes imaging cvntrol and irrigation control hardware. The imaging control hardware controls an optical scanning system, to be described in detail below, which is inserted into the interior of a vessel for generation of a digitized image. The irrigation control hardware controls an irrigation system, to be described in detail below, which provides pulsed introduction of flush solution into the interior of the artery to create a clear viewing field within the vessel for the optical scanning system. The computer system controls both the optical 2U scanning system and the irrigation system such that the generation of the digiti~ed image i5 synchronized with the pulsed introduction of the flush solution.
The system shown in Fig. 1 operates under the control of a central processing unit 10. The central processing unit 10 communicates with a digitization board 12 which generates a digitized image signal that corresponds to a live image captured by camera and light source 14, as described in detail below. The live image signal generated by camera/light source 14 is provided to the digitization board 12 via a video splitter/amplifier 16 which also provides the live image signal to monitor A for direct display. The digitization board 12 provides the digitized image signal to monitor B for display of a digital imagP~
Status information, which can be entered either via a ,. ~: ': ~' '. . ,., ' :
-~ 3 ~ . v ~
keyboard 18 or a handset 20, is displayed on a status display monitor C via monographic serial input/output card 22. CPU 10 can access both flo]ppy drive storage 23 and hard drive storage 25 via a disk controller 28. As will be described in detail below, pulses of pressurized saline flush solution are provided to an angioscope catheter on command ~rom the central processing unit lo which opens and closes a solenoid valve 30 via communications and relay board 32.
A pictorial illustration of an angioscopy imaging system in accordance with the present invention in an operating room environment is provided in Fig. 2.
Referring to Fig. 3, the optical scanning system includes an angioscope catheter 24 which houses an angioscope 26 which is attached to the video camera and light source 14. As stated above, the output signal of the video camera, designated "28" in Fig. 3, is provided both to a live monitor A and to the digitization board 12 for digitization and viewing on monitor B in real time, as will be described in greater detail below. The light source, designated "30" in Fig. 3, attaches to the eyepiece 26a of the angioscope 26.
Referring to Figs. 4~-4D, according to a pre~erred embodiment of the present invention, the angioscope catheter 24 comprises an inner catheter 32 which slides longitudinally with respeck to an outer sheath 34. The outer sheath 34 includes a plurality of slitted sections 36 formed circumferentially near its distal end. The outer sheath 34 is bonded to the inner catheter 32 at their distal-most points. ~hus, when the inner catheter 32 is pulled proximally with the outer sheath 34 held fixed, the slitted sections 36 of the outer sheath 34 splay out radially from the axis of the catheter 32 in a symmetrical fashion. This centers the angioscope during visualization, particularly in curved sections of the ~326~
vessel, as best shown in Figs. 4C and 4D. At the same time, it allows blood to flow in the vessel during the angioscopy procedure.
The angioscope 26 comprises an illuminated fiberoptic scope which extends through the inner catheter 32 for viewing through the open distal end of the catheter 32. The fiberoptic scope 26 may be of the lighted type manufactured by Baxter, Edwards LIS
Division, Santa Ana, California. Such scopes have central viewing strands which are surrounded by periphexal illuminating strands. Although not illustrated in Figs. 4A-4D, it should be understood that the proximal end of the scope 26 would be secured to the video camera and light source 14, as shown in Fig. 3.
As further shown in Fig. 4A, the angioscope centering catheter 24 also includes an irrigation port 38 for pulsatile irrigation of the vessel through the inner catheter 32. The angioscope 26 is held in place within the inner catheter 32 by means of an O-ring seal 40. A second O-ring seal 42 prevents blood from seeping out between the inner catheter 32 and the outer sheath 34. This second O-ring seal 42 slides longitudinally along a rigid section 44 that houses the inner catheter 32 to provide the splaying of the slitted sections 36 as described above. The rigid section 44 permits easy movement of the outer sheath and the inner catheter with respect to one another.
, 1~`
:, ,:
^ - ~ 3 ~
Referring back to Fig. 3, the angioscope centering catheter ~ is irrigated with sterile saline via the irrigation port 38 by means of an irrigation line 46 connected to a pressure vessel 48. The pressure vessel 48 houses a bag 50 of sterile saline which is attached to the irrigation line 46 by means O:e an irrigation line sipike 52. An 0-ring 54 seals the irrigation line spike 52 against the cover of the pressure vessel 48.
Compressed air is supplied to the pressure vessel 48 via an air pressure inlet 56. The pressure within the vessel 48 is adjusted by a regulator 58 and is measured by pressure gauge 60.
As stated above, pulses of pressurized saline are delivered to the irrigation port 38 on command from the computer system, which opens and closes a solenoicl pinch valve 30. The solenoid pinch valve 30 pinches a section of silicone t~bing 64 which lies in line with the irrigation line 46. The computer system may be programmed to deliver a sequence of timed irrigation pulses or a single pulse may be delivered by means of the foot pedal switch 34 connected to the central processing unit :lO via communications and relay board 32.
A saline flush pulse is activated for a duration of approximately one second, the duration of the pulse being dependent upon the patient, the siæe of the vessel and the type of catheter used. This is in contrast to the constant flush which is maintained during present angioscopic procedures. The clear analog image of the interior of the vessel which is captured by the camera during the flush is digitized and displayed on monitor B and the image is froæen until the next flush cycle.
A stable monitor image is desired, with no black screen or interrupted images between monitor picture changes. This requires storage of the incoming image from the angioscope 34. Therefore, the analog image signal generated by the video camera ~8 is digitized, stored in memory of the computer system and projecked on video monitor B. The image is refre~shed continuously, preferably at a rate of at least 30 times per second, until the image is changed with the next flush cycle, as illustrated in Figs. 5A-sH; the eye can perceive no black screen or interruption of the image at this speed of image refreshing.
As stated above, it is difficult to obtain a bloodless viewing field in the arteries because of the higher pressure and flow rate of blood in these vessels.
Therefore, as shown in Fig. 6, it is preferred that the angioscope 24 be inserted in the vessel such that the saline flush is directed against the direction of blood flow to create a bolus of saline ~lush solution that is visually clear for the focal distance of the angioscope 24. For the fiber optic scope identified above, this distance is approximately 15 mm. The flush is directed against the blood flow to achieve clearing with the minimal amount of saline. Experiments have shown that the flush stream is diluted if flushing is in the direction of blood flow, as shown in Fig. 6A, and clearing is only obtained with large volumes o~ flush.
On the other hand, flushing against the blood flow establishes a clear area where opposing fronts of flush and blood flow meet.
The catheter design used to flush against blood flow will vary with the situa~ion and application. For intraoperative angioscopy, the artery will be isolated in the operating room, and an arteriotomy made to admit the angioscope. As shown in Fig. 7, the artery will be clamped proximal and distal to the arteriotomy site. If the angioscope 24 is advanced in a distal direction, .: ,~.,;
..:
132~
there is no forward blood ~low, only backflow from collateral side branches. Thus, the flushing catheter may be a straight, open ended catheter. If the angioscope is advanced in a proximal direction, it is again going against blood flow and a straight, open ended catheter will again be appropriate.
For percutaneous angioscopy, the angioscope is introduced via a needle puncture and an introducing sheath into the artery. Usually, the access site is the femoral artery. If the angioscope is threaded distally, it lies in the same direction as the blood flow. The catheter must now flush backwards to form a bolus which goes against the blood flow. As shown in Figs. 8A and 8B, such a catheter may include a port which allows the ~lushing fluid to hit a deflecting shield at the distal tip of the angioscope, thus causing the flush to stream backwards. If the angioscope is threaded proximally, a straight, open ended catheter will be used.
The timing of the flush is important. In the peripheral arteries, the blood flow may come to a standstill or even reverse its direction of flow in diastole. On the other hand, in the coronary arteries, forward blood flow occurs during diastole. The flush may be timed with the cardiac cycle of systole and diastole by triggering the flush with an electro-cardiogram. An electrode pickup may be input to the computer to control the flush cycle.
Capture of the monitor image may be performed in several different ways. The image capture following the flush may simply occur at a fixed time interval, as shown in the flush cycle sequence provided in Fig. 5I.
Fig. 5I shows a flush cycle N that includes three flush ... ... .
, :
', ' ` -. - ~ ~;
~32~
puls~s per cycle. Each flush pulse i~3 of duration A, followed by a flush-interrupted period B. R designates the ~Irest9~ time between cycles. An updated image is "frozenl' on each falling edge of the 'IA" flush pulse.
Alternativ~ly~ th~ image capture mely be triggered by the computer controls. For example, a den~it~meter may be used to detect the presence of a d ear optical fieldO The clear field ~ay also be determined by examining the maximal image contrast ob~ained during the flush cycl~, and capturing the image when the image contra6t just starts to decrease from its optimal degree.
Alternatively, as stated above, control of the flush cycle may be per~ormed by the operator via the foot pedal ~witch which activates both the flush and imag~ capture ~unction~. A single depression of the pedal followed by its release may correspond to a single ~lush. Continued deprsssion o~ the foot pedal may then result in a repeated flush cycle at specified time interval~; ~or example, at one ~econd interval~. ~his allows angioscop0 adv~ncem~nt at a rate of 1,5 cm per second, with ~isual~zation of ~h~ en~ire length of the artery~ while allowing normal blood flow to occur during the flush interrupted cycles.
Referring back to Fig. 1, both the color Yideo display monitor A used for displaying ~he continuous live i~age produced by the c~mera and th~ analog RGB
monitor B used for displaying the digital im~ge produced by the imaging system are, ~or best re~ult~, high resolution monitors ~uch as a Sony*CPD-1303 or ~axan*
770 monitor. The ~ystem ~tatus monitor C ~ay b~ an industry standard monochrome monitor such as a Samsung amber monitor.
An AT compatible monographics ~erial inter~ace I/0 card 22 o~ generic manufac~ure is used to drive the * Ilrade-mark .
; :~
~ 3~S~
monochrome monitor C and provide s~anclard RS-232C
communications.
A specialized digitization board 12, illu~trated in Fig. 9, converts NTSc video images to a digitally generated ~acsimile represented on RGE~ monitor B. The board is the TARGA*16 product o~ Truevision Corp., Indianapolis, Indiana, which has been modified as illustrated in Fig. g for compatibiliky with the angioscopy imaging system of the present invention.
~he changes made to the Truevision board were primarily for the purpose of improving speed and resolution. Capacitance and crystal adjustmen~s were made to provide higher speed. Resistive adjustments were mad~ to improve resolution. New jumper configurations were provided to improve the compatability of the video synch ~ignals. The generic LM386 and 74138 components used by Truevision were replaced with more reliable National Semiconductor components.
A high resolution CCD camera and high intensity quartz light are used to provide a high resolution image to the 8yst2~ ~ The CCD camera is ¢onnected to the fiber optic angioscope, as described above. The light source is connected to the illuminating stands of the scope.
In the preferred e~bodiment, the CCD camera is a Sony CCD color chip ca~era, Model No. DXC102-, and the light is a generic 12Vdc 150W quartz bu}b.
The communi~ations and relay board, designed and manufactured by Nobles/Lai Engineering Inc., Carson, California, allows the central processing unit 10 to communicate with the solenoid~
The communisations and relay board is illu~trated schematically in Fig. 10.
The 74LS244-1 component is a byte wide line driver the enable pins o~ which ar~ tied to ground. Since the * Trade-mark `
.
132~
enable si~nal is active low, ~his chip always passes the address lines ~rom the central processing unit 10 to the communications relay board. The 74LS244-2 component is an identical byte wide line driver whose enable pins of which are also tied to ground. Since the enable signal for this driver is active low, it, too, ~lways passes the address and I/O lines from the central processing unit to the communications relay board. The 74LS245 component is a bi-directional buffer used to buff~r the data bus in from and out to the central processing unit 10 to the communications relay board. The 74LS00 and the 74LS08 components are simple gates used to configure inputs to the 74LS138 and 74LS245. The 74LS85 component is u~ed as a comparator to supply a toggle on its output pin when the inputs from the two 74LS244 components are equal. The 74LS138 ~s a 3-to-~ bit decoder used to further decode the address bus to deliver 32 consecutive addresses to the 74LS373 component. The 74LS373 i5 an 8 bit shift register used to supply a signal to the solenoid.
The foot pedal is a simple, generic N/O (Normally Open) momentary SPST (Single Pull Single Throw~ switch which provides ~imple control of irrigation and image capture.
The solenoid is an activated pinch valve which is controlled by the central processing unit 10 via the co~munications and relay board to regulate the ~low of sterile salin~ ts the catheter ~or irrigation o~ the v¢ sel, as described above.
The central processing unit 10 is an AT PC
~otherboard based on an In~el*80286 CPU. I~ is a 12MHz based system with 1 Mbyte on-board R~M.
The handset allows the surgeon or technician ~ast and easy access to the different modes and ~unctions of * Trade-mark .
~;
. ~ .
:: , ': :
the system. The handset is designed with a roller ball for quick changesO
The handse~ is shown pictorially in Fig. 11 and its circuitry is shown schematically in Fig. 12.
The three 74LS244 ~hips are use~d to buffer the inputs to the 74LS373 chips. The 74LS373 chips are used as 8 bit shift registers and are used to drive the handset LEDs. The 11 Mhz crystal provides the clock and timing for the 8749 CPU. The 4 x 5 XY matrix keyboard is a 20 key keyboard including 16 momentary push keys and 4 momentary toggle keys for th~ roller ball. The 8749C is a stand-alone microprocessor designed for keyboard encoding. In this application, it allows the handset keys to emulate function keys of the system keyboard. The foot pedal is a function of the keyboard, emulates a single-function key and is fed into the 4 x 5 matrix of the 8749C component.
The keyboard is a standard AT-style keyboard (e.g., Harvest 86-KEY) which allows the user to manually enter the same data as entered from the handset as well as alpha-numeric data ~e.g., patient information).
A disk controller is required to provide communications between the 80286 motherboard and both the hard disk drive and the floppy disk drive. The controller used in this application is generic in manufacture and can be any AT compatible controller capable of handling at least a 1.2 MByte floppy disk drive and a 30 Mbyte hard disk drive.
The system so~tware and all its necessary functions are all located on a user system disk, placed internally in the system. The system disk will start up the entire system when power is applied to the computer, checking each component for failures, and - reporting any malfunctions onto the user screen. Usin~
~ .
.. 1' ' :
1 3 ~
the user ~riendly technique, all menus and status are easy to read and understand.
The software is written in C86 C language. Most of its ~unction calls are dedicated to the digitizer board for image capturing and image processing.
source listing of the program is provided at the end of this speci~ication as Appendix A.
It should be understood that the invention is not intended to be limited by the specifics of the above-lo described embodiment, but rathex is de~ined by the accompanying claims.
"~
,, ~:, ':~, -17- ~32~.5~
/* SURGICAL ANGIOSCOPY I~AGE DIGITIZER PROGRAM
* Release 2.11 * Date: 4-18-88 ( Last update ) * Designer: Alex Kwok-Yeung, Lai ( Software ) * Anthony Nobles ( Hardware ) * Company: NOBLES/~AI Engineering * Description:
*
*
*
*
-* 1st printer port to control solenoid, * 2nd printer port take foot pedal control.
* Using Function keys & pad as inputs.
#include "stdio.h" /* standard I/O file */
#include "tardev.h"
#define TIMER_LO 0x460 /* tick counter for timer */
#define PAGE O /* defining constants */
#define SPACE 0x20 int tpnum, maxcycle, s-toptime float tdur, tndur, tintrvl, tmandur, tolive, tgrab /* tdur - duration time which the device is on.
* tpnum - number of durations in one cycle.
* tndur - device down time before next duration on.
* tintrvl - the elapse time between cycles.
* tmandur - manual duration time.
* tolive - time which live picture comes on in duration.
* tgrab - time to grab an image.
* maxcycle - maximum cycles in one automatic period.
/
int cntrol_flag=1 , /* l=auto, 0=manual */
int grab_flag = 1 ; /* 1=grab, 0=no grab */
char beep='~007' extern struct TARStruct *targe extern struct M8Struct *m8 APPENDIX A
. ~ i ;'.`'^
.. :. .
.
.
sin(~ 1326~$~
int i, i char ch, dh char filename[20] ; /* user input file name */
extern int tpnum,maxcycle, stoptime extern float tdur,tndur,tintrvl, tmandur,tolive,tgrab extern int bdos~) ; /* bios service routines */
bdos(5, `B') ; /* turn off bit O in parallel port */
stoptime = O `
tpnum=maxcycle=1 ;
tdur=tndur=tintrvl=tmandur=tolive=tgrab=0.5 greetingl) ;
GraphInit(-1) ; /* init TARGA board */
system("cls") menu() status~) ; /* status of the control device */
printf~"\n") SetLiveMode() ; /* live mode */
bdos~9," Press Red keys $") do {
ch = bdos(8) & Oxff } while ~ ch != OxOO ) ;
ch = bdos~8) & Oxff ; /* get red key codes */
while ~ ch != `S') /* DEL key */
{
switch ~ch) {
case `K': /* <- key */
bdos~2,0xOD) ; bdos~2,0xOA) ; /* CR-LF */
bdos(9, " Going to Live Picture Mode $"~ ;
SetLiveMode~) ;
system("cls") ; menu() bdos(2,0xOA) ; bdos(2,0xOA) status() ; break case `G': /* HOME key */
bdos~2,0xOD) ; bdos(2,0xOA) ; /* CR-LF */
bdos(9, " Save the Captured Picture. $") printf~"/nEnter Save under filename : ") gets~filename) printf~"/nFile is being saved.Please wait ...\n");
PutPic(filename,O,O,-1,-1,-1) system~"cls") ; menu() bdos~2,0xOA) ; bdos~2,0xOA) status~) ; break case `M' : /* - > */
bdos~2,0xOD) ; bdos~2,0xOA) ; /* CR-LF */
bdos~9, " Freeze the Picture. $") ;
GrabFrame~) ;
SetDispMode() ;
system~"cls") ; menu~) ;
bdos~2,0xOA) ; bdos~2,0xOA) ;
status() ; break ;
case `I': /* PgUP key */
bdos~2,0xOD) ; bdos~2,0xOA) /* CR-LF */
bdos~9, " Retrieve a Captured Picture. $") printf("/nEnter Picture file to be Retrieved : ") gets(filename) printf~"/nPicture is now being retrieved. : ") ;
printf~"Please Wait... \n") GetPic~filename,-1,-1,-1) ;
SetDispMode() system("cls") ; menu~) ;
bdos~2,0xOA) ; bdos~2,0xOA) status~) ; break ;
' ` '~
`:
-19- ~32~
case `0': EN~ key */
bdos(2,0xOD) ; bdos(2,0xOA) ; /* CR-LF */
bdos(9, " Change Irrigation Control. $") if (cntrl_flag) cntrl_flag = O
else cntrl_flag = 1 system("cls") menu() ; bdos(2,0xOA) ; bdos(2,0xOA) status() ; break case `Q': /* PgDN key */
bdos(2,0xOD) ; bdos(2,0xoA) ; /* CR-LF */
bdos(9, " Start Irrigation Procedure. $") if (cntrl_flag) automode() else manmode() system("cls") menu() ; bdos(2,0xOA) ; bdos(2,0xOA) status~) ; break case `B': /* FB key */
if (grab_flag) grab_flag = O
else grab_flag = 1 printf("\nGrabbing is now : ") if (grab_flag) printf(" Freezing at end. \n") else printf(" NO Freezing at end. \n") break Case `R': /* INS key */
picturejust() default :
printf("Wrong Key - Try again \n") bdos(2,0xOD) ; bdos(2,0xOA) printf(" Press Red Key ") do {
ch = bdos(8) & Oxff ~ while ( ch != OxOO
ch = bdos(8) & Oxff if (ch == `S') print f("\nDo you really want to quit ? \n") print f(" Hit Y to quit, or any other key to continue. ") ch = bdos(1) & Oxff if ((ch == `Y') :: (ch == `y')) break ;
}
GraphEnd() ; /* return icb memory */
system("cls");
printf("\n\n Program done, and All ends Well !! \n:) /*********** greeting ***********/
greeting() char ch system("cls") printf("\n\n ") printf("W e l c o m e T o \n") printf("T h e F a s c i n a t i n g W o r l d \n") printf("\n\n ") printf("O f B i o m e d i c a l T e c h n o l o g y \n") printf("\n\n ") printf("A N G I O S C O P Y I M A G E D I G I T I Z E R \n") ;
printf(" ") printf("Release 2.11 \n") printf("\n\n\n ") printf("Nobles/Lai Engineering \n") printf(" ") printf("940 E. Dominguez Ste. K, Carson CA. 90746 \n") ~?
.
' . . ' . .
, .
~ ~, . .;.
-` 132~
printf("Copyright @1988. Mar MCMLXXXVIII2-22 \n") printf(" Dr. Thomas Fogarty \n") printf("\n ") printf("Press the SPACE BAR to continue.") ch= bdos(7) ~ Oxff ; /* no echo on input */
while ( (int) ch != SPACE ) ch = bdos(7) & Oxff /*********** menu ***********/
menu() }
bdos(2,0xOA) ; bdos(2,0xOA) ; bdos(2,0xOA) bdos(~," $") bdos(9,"MENU SELECTION$") bdos(2,0xOD) ; bdos(2,0xOA) bdos(9," $") bdos(9,"=========================$") printf("\n\n RED keys are for main menu selection. \n") printf("\n\n BLUE keys are for irrigation uses only. \n") /*********** status ***********/
status() printf("\n") printf("CURRENT CONTROL SETTINGS ") printf("\n ==========================\n\n") printf("Irrigation Flush Time : ") ;
printf("%0.2f secs.\n", tdur) printf(" Live Picture Starting Time : ") printf("%0.2f secs.\n", tolive) printf("Image Grab Time (from start) : ") printf("%0.2f secs.\n", tgrab) printf("Irrigation Pause Time : ") printf("%0.2f secs.\n", tndur) printf("Number of Flushings / cycle : ") printf("%d \n", tpnum) printf("At Rest Cycle Time : ") printf("%0.2f secs.\n", tintrvl) printf("Maxium cycles in whole period : ") printf("%d \n", maxcycle) printf("Current Flushing Control is -> ") if(cntrl_flag) printf("AUTOMATIC \n") ; - .
else printf("MANUAL \n") printf(" Current Grabbing Control is -> ") if(grab_flag) printf("Freezing at end \n") else printf("No freezing pictures \n") printf("\n") }
/*********** manual status ***********/
man_status() printf("\n") printf("CURRENT CONTROL SETTINGS ") printf("\n ==========================\n\n") printf("Irrigation Flush Time : ") printf("%0.2f secs.\n", tmandur) printf("Live Picture Starting Tirne : ") printf("%0.2f secs.\n", tolive) printf("Image Grab Time (from start) : ") printf("%0.2f secs.\n", tgrab) printf("Current Grabbing Control is -> ") if ( grab_flag) printf(" freeze at end \n") else printf("No freeze at end \n") printf("\n") ,, . :
., .. : .
, :. . . ..
/*********** chg ift ***********/
chg_ift() char ch ; int kj printf("\n") printf("Irrigation Flush Time : ") ;
printf("%0.2f secs.\n", tdur) printf("Enter new settings ? ") while ( key_scan() == -1 ) ;
kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) {
scanf("%f",&tdur) getchar() if (tdur < 0.2) tdur = 0.2 tmandur = tdur }
/*********** chg_pgt ***********/
chg_pgt() char ch ; int kj printf("\n") printf("Picture Grab Time : ") ;
printf("%0.2f secs.\n", tgrab) printf("Enter new settings ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) {
scanf("%f",&tgrab) getchar() if (tgrab ~ :: (tgrab > tdur)) tgrab =tdur /*********** chg_lcot ***********/
chg_lcot() char ch ; int kj printf("Live Picture Starting Time : ") printf("%0.2f secs.\n", tolive) printf("Enter new time ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) scanf("%f",&tolive) getchar() if ((tolive < 0) !! (tolive > tdur)) tolive = 0 /*********** chg_ipt ***********/
chg_ipt() char ch ; int ki printf("\n Irrigation Pause Time : ") printf("%0.2f secs.\n", tndur) printf("Enter new time ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj == OxlCOD) return if (isdigit(kj) {
scanf("%f",&tndur) getchar() if (tndur ~ 0.1) tdur = 0.1 -' .
/**************** chg nfc **********/chg nfc() -22-char ch ; int kj ;
printf ("\n Numbe~ of Flushings per Cycle ; ");
printf ("%d \n", tpnum) ;
printf (" Enter new number ? ") ;
while ( key_scan() == -1 ) ;
Kj = key scan() if ( kj == OxlCOD ) return if ( lsdigit (kj) ) scanf ("%d", &tpnum) getchar() if ( tpnum < 1 ) tpnum = 1 ;
}
/**************** chg_rct **********/
chg_rct () char ch ; int kj ;
printf ("\n At Rest Cycle Time : ") printf ("%0.2f secs. \n", tintrvl) printf (" Enter new rest time ? ") ;
while ( key_scan() == -1 ) kj = key scan(~ ;
if ( kj == OxlCOD ) return if ( isdigit (kj) ) scan f ("%f", &tintrvl) getchar () ;
if ( tintrvl < 0.1 ) tintrvl = C.1 ;
}
/**************** chg_ncp **********/
chg_ncp() char ch ; int kj ;
printf ("\n Maximum number of cycles / period : ");
printf ("%d \n", maxcycle) printf (" Enter new period cycle number ? " ) ;
while ( key_scan () == -1 ) ;
kj = key_scan() ;
if (kj == OxlCOD ) return if ( isdigit (kj) ) scanf ("%d", &maxcycle) getchar() if ( max cycle < 1 ) maxcycle = 1 ;
/**************** manmode() **********/
manmode() int lptst, ntmandur, ntlive, ntgrab ;
char ch ; int j ;
man start :
system ("cls") ;
man_status() printf ("\n BL~E key selections ... \n") ;
for (;;) do { ch = bdos(8) & Oxff ; } while (ch != 0x00 ) ;
ch = bdos(8) & Oxff ;
switch (ch) ~r~!~
, ., . ..~ ..~,.:
...
~326~
{
case `;' : /* F1 key */
chg ift() ;
break ;
case `<` : /* F2 key */
chg_pgtt) break ;
case `=' : /* F3 key */
chg_lcot() break ;
case `B' : /* E8 key */
if (grab flag) grab flag = 0 ;
else grab flag = 1 ;
printf ("\n Grabbing is now ");
if (grab flag) printf (" Freezing at end.~n");
else printf (" NO freezing at end.\n);
break ;
case `S' : /* DEL key */
case `C' : /* F9 key */
case `D' : /* F10 key */
break ;
default : printf (" Wrong key - try again . \n") ;
if (ch == `S') break ;
if ~ch == `C') break ;
if ~ch == `D') break ;
system ("cls") printf ("\n MANUAL IRRIGATION CONTROL MODE \n\n") man status () ;
}
if (ch == `S') goto man out ;
if (ch == `D') goto man out ;
if ((tolive >= tmandur) :: (tolive < 0)) tolive = 0 ;
if ((tgrab >= tmandur) :: (tgrab < tolive)) tgrab = tmandur ;
ntlive = (toli~e * 1000) / 55; /* live pic on time */
ntmandur = ~tmandur * 1000) /55 ; /* 55 msec loop count */
ntgrab = (tgrab * 1000) / 55; /* grab time */
lptst = 0;
system ("cls") ; t man status () ;
for (;;) /* will exit only if q hit */
{
stoptime = 0 , lptst = 0 ;
j = 0 ; ch = `a' ;
printf ("\nPress ANY KEY or FOOT PEDAL to start, or ") ;
printf (" hit q to quit at any time.") ;
while (j == 0) {
if (prt_err(l)) j = i ;
: else if (key scan() != -1 {
j = i;
ch = bdos (8) ~ Oxff ;
}
}
if ( (ch == `q') :: (ch == `Q')) break ;
lptst =~on dur_man (ntmandur,ntlive,ntgrab) printf (" %d", stoptime * 55 ) ;
for ~ j = i ; j < 5000 ; j += 1 ) lptst += 1 ; /* delay */
}
goto man start ;
man_out :
printf ("\n Quitting Maanual Procedure ....\n") ~.
: .
132~
/**************** automode() **********/
automode() -24-int kloop, nton, ntoff, ntrest, ntlive, lptst, ntgrab ;char ch ; int j, jcycle ;
auto start :
system ("cls") ;
status() printf (" BLUE key selections ... \n") ;
for (::) {
do { ch = bdos(8) & Oxff ; } while ( ch !=OxOO ) ;
ch = bdos(8) & Oxff :
switch (ch) {
case `:' : /* F1 key */
chg_ift() :
break :
case `<` : /* F2 key */
chg pgt () :
break :
case `=' : /* F3 key */
chg lcot() ;
break ;
case `>' : /* F4 key */
chg ipt() break ;
case `?' : /* F5 key */
chg nfc() break ;
case '@' : /* F6 key */
chg rct() break ;
case `A' : /* F7 key */
chg_ncp() break;
case `B' : /* F8 key */
if (grab flag) grab flag = O ;
else grab flag = 1 ;
printf ("\nGrabbing is now ") if (grab flag) printf ("freezing.\n") else printf (NO freezing. \n") ;
break ;
case `C' : /* F9 key */
case `S' : /* DEL key */
case `D' : /* F 10 key */
break -default : printf ("Wrong Colour Key - try again \n") ;
}
if (ch == `S') break :
if (ch == `C') break :
if (ch == `D') break :
system ("cls") status () :
printf ("BLUE key selections ... \n") :
if ( ch == `S') goto auto_out if ( ch == `D') goto auto out ;
if ( tgrab < tolive) tgrab = tdur :
if ( tolive >= tdur ) tolive = O :
nton = (tdur * 1000) / 55 : /* duration on period */
ntoff = (tndur * 1000) /55 ; /* duration off period */
ntrest = (tintrvl * 1000) / 55 ; /* cycle rest time */
ntlive = (tolive * 1000) / 55 ; /* live pic on ti.me */
ntgrab = ( tgrab * 1000 ) / 55 ;
lptst = O ;
for (,;) /* only quit ~hen hit q */
, " ~.
; ': ,:
, ~, ~32~
{
printf ("\nPress A, KEY or FOOTPEDAL to start or ") ;
printf (" hit q to quit at any time. ") ;
j = O;
while ( j == 0) if (prt err (1)) j = 1 ;
else if (key scan () != -1_ {
j = l;
ch = bdos(8) & Oxff ;
}
if (ch == `q') :: (ch == `Q')) break ;
jcycle = maxcycle ;
while ( jcycle > 0 ) {
kloop = tpnum - 1 ;
lptst = on dur man~nton,ntlive,ntgrab) if (lptst == 999) break ;
while (kloop > 0) {
lptst = off dur (ntoff);
if (lptst == 99) break ;
lptst = on dur (nton, ntlive, ntgrab) ;
if (lptst == 999) break ;
kloop -= 1 ;
if (lptst == 999) break ;
lptst = off dur (ntrest) ;
if (lptst == 999) break ;
bdos(6,7) ; bdos (6,7); bdos (6,7) ;
jcycle ~
for ( j = 1 ; j ~ 8500 j += 1 ) lptst += 1 ;
}
goto auto start ;
auto_out :
printf("\n Quitting automatic procedure ... \n ) /**************** duration on **********/
on dur(tsecs,lvtsecs,grabsec) int tsecs, lvtsecs, grabsec ;
unsigned -ticref, kbstat ;
int i, j, k ;
unsigned int kbch ;
char kch ;
bdos (5,`A') ; /* turn bit 0 on in port */
i = O;
while (tsecs >0) :
if ( i >= lvtsecs ) SetLiveMOde() ;
tickref = peek(TIMER LO,0) while (tickref == peek(TIMER_LO,0));/* equal after 55msec */
if ( key scan() != -1 ) {
kch = bdos(8) ; /* non echo get char */
if (grab flag) ( GrabFrame () ;
SetDispMode() ;
}
bdos(5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
else if ( prt err (1) ) `
--26- ~3~
if (grab flag) 1 GrabFrame () SetDispMode() bdos (5, `B') ; /* bit O off */
return (999) ; /* out and quit */
tsecs -= 1 ; .
i += i;
j = i % 1~ ; /* 1 sec interval */
if (j 3= O) bdos (6,7) ; /* second testing */
if ( i > grabsec ) if (grab flag) { GrabFrame () ;
SetDispMode() ; }
bdos (5, `B') ;
return (O) ;
}
bdos ~5, 'B') ;
if (grab flag) I GrabFrame() SetDispMode() ; } ~.
return (O) ; /* O = > o.k. */
/**************** duration off **********/
off dur (tsecs) int tsecs ;
int i, j ;
unsigned tickeref ;
char kch ;
bdos (5, `B') ;/* bit O off */
i = O;
while (tsecs ~ O) tickref = peek(TIMER_LO,O) ;
: while (tickref == peek(TIMER LO,O) if ( key scan() != -1 ) kch = bdos(8) ;
return (999) else lf ( prt err (1) ) return (999) }
tsecs -= 1 ;
i += l;
j = i % lB -if (j == O) bdos (6,7) ; /* second testing */
return (O) ; /* all o.k. */
/**************** Picture Adjusts **********/
picturejust () int kk ;
char dh ;
system ("cls") ;
printf("\n\n This procedure adjusts the following parameters:
\n" ) printf (" - the Hue \n") ;
printf (" - the Contrast \n") ;
printf (" - the Saturation .... of a LIVE PICTURE \n\n") ;
printf ("Press ( H,C,S or Q to quit ) : ") ;
dh = bdos(7) & Oxff ;
while ((dh != `Q') && (dh != `q')) .
.
.
132~
switch (dh) { -27-case `H' case ~h' printf ("Hue, Enter Level (0-31) : ") ;
scanf(%d \n",~kk) ; getchar () ;
SetHue(kk~ ;
break ;
case `C':
case `c':
printf("Contrast, Enter Level (0-31) : ") ;
scanf("%d \n,&kk) ; getchar () ;
SetContrast(kk) break ;
case `S':
case `s':
printf("Saturation, Enter Level (0-7) : ") ;
scanf ("%d \n, &kk) ; getchar () ;
SetSaturation (kk) break ;
default :
printf (~Unknown Command ??? \n") ;
}
printf ("\n Press ( H,C,S or Q to quit ) : ") ;
dh = bdos (7) & Oxff ;
printf (" Quit. \n") ;
/**************** manual duration on **********/
* difference with on dur is that during the 1st three-quarter * second of the starting of flushing, the program will not * recognise the keyboard nor the foot-pedal, so that it will * not detect a stop flushing false signal.
*/
on dur man (tsecs,lvtsecs,grabsec) nt tsecs, lvtsecs, grabsec ;
unsigned tickref, kbstat ;
int i, j, k ;
unsigned int kbch ;
char kch ;
bdos (5,`A') ; ~* turn bit 0 on in port */
i = O, while ~tsecs >0) {
if ( i >= lvtsecs ) SetLiveMOde () ;
tickref = peek (TIMFR LO,0)) ; /* equal after 55msec */
if (i >= 14) {
if (key scan() != -1 ) {
kch = bdos(8) ; /* non echo get char */
if (grab flag) { GrabFrame () SetDispMode() ; }
bdos (5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
else if (prt err (1) ) if (grab flag) { GrabFrame() SetDispMode() bdos (5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
, . ~
.
, ~:
. . .
} 132~
}
tsecs -= 1 ;
i += 1, stoptime += l ;
j = i ~ 18 ; /* 1 sec interval */
if (j == O) bdos (6,7) ; ~* second testing */
if (i >= grabsec ) {
if (grab flag) { GrabFrame() SetDispMode() ;
bdos (5, `B') ;
return (O) ;
}
bdos (5, `B') ;
if (grab flag) ~ GrabFrame() SetDispMode() return (0~ ; /* b = , o . k. */
~j^l ,, : .
.
.
REAL TIME ANGIOSCOPY_IMAGING SYSTEM
Background of the Invention 1. Field of ths Invention The present invention relates to apparatus for direct visualization of body passages and, in particular, to an automated angioscopy imaging system that provides pulsatile irrigation coupled with synchronous real time imaging.
lo 2. Discussion of the Prior Art It is well-known that optical scopes may be used for direct visualization of body passages. For example endoscopes are used for viewing the gastrointestinal tract/ bronchoscopes are used for viewing bronchial passages, and arthroscopes are used for joint examination. These scopes are moved to a position within the body that the viewer desires to examine. The body passage is then visualized directly through the eyepiece of the scope or a video camera is attached to the scope to display the image on a video monitor.
An angioscope is used for viewing both the arterial and the venous systems. In the angioscopy procedure, a fiberoptic scope is inserted into the vessel through an incision and then threaded through the vessel to provide visualization at selected points along the length of the vessel. Sterile saline flush solution is introduced continuously into the vessel to provide a clear visualization field.
Angioscopy i5 a particularly difficult procedure in the arterial system. The pressure and the flow rate of the blood are much higher in the arteries than in the veins, making it difficult to obtain the clear, bloodless field required for the desirad quality of visualization. If only a small amount of saline is used to flush away the blood, this flush is washed away too r;
quickly to allow adequate visualization. On the other hand, if a larger amount of flushing solution is used, over a time period sufficient to allow adequate visualization, complications will arise. First, fluid overload of the patient will occur, causing electrolyte imbalance or congestive heart ~ailure~ Second, there will be a lack of perfusion to the tissue supplied by the artery undergoing angioscopy because the flushing fluid has cleared away the oxygen-carrying blood. This problem is particularly difficult in angioscopic evaluation of the coronary arteries, since the cardiac muscle cannot tolerate prolonged ischemia. Balloon occlusion may be used, but it too may cause ischemia.
'rherefore, it would be highly desirable to have available an angioscopy system that provid~s clear visualization within the irrigation constraints described above.
Summary of the Invention An angioscopy imaging system in accordance with the present invention utilizes controlled saline irrigation to clear the viewing field and a synchronized, high-resolution imaging system to capture a high quality digitized image and hold it for viewing in real time.
During the irrigation cycle, the angioscope image is projected directly on a video monitor. The image is saved on the monitor during the flush-interrupted cycle and then updated with the next active flush cycle.
This technique allows constant visualization of the artery, with second-by-second evaluation of the catheter position within the artery. It provides a real-time image of the artery, while allowing ~lood flow to occur ``
over a large proportion oP time. This decreases the danger of incurring ischemia during visualization.
: ,.
, ~
.
:: .
,; . :, , . .
5 ~`J ~:
An angioscopy imaging system in accordance with the present invention utilizes a catheter which houses ~he angioscope and provides a flushing channel which allows irrigation at the distal end of the angioscope. The saline flush creates a bolus which is visually clear over the focal distance of the angioscope. The pulses of pressurized saline are delivered on command ~rom a computer system. The computer may be programmed to deliver a sequence of timed irrigations, or a single pulse may be delivered by means of a foot pedal switch connected to the computer.
Both the fiber optic angioscope and the irrigation catheter are placed inside a narrow blood channel and, immediately, a digitized picture is generated by a digitizer board and displayed on a monitor in real time.
The main function of the computer is to allow the user to predefine the duration of the period during which saline solution is injected into the blood channel~ thus clearing the viewing end of the angioscope and its surrounding. While the solution is being injected, a continuous live picture is also being generated on a ~eparate monitor. At the end of the irrigation period, saline injection stops and the computer commands a freeze procedure, thus preserving the last image on the live monitor. The digitized image is periodically refreshed until a new, updated image is displayed in conjunction with the subsequent flush cycle.
The system program provides the user with absolute freedom in determining the l~ngth of the irrigation period to yield the best possible display, but with certain limitations so that it will not jeopardize the overall operation. The high speed digitizer allows for sufficiently short irrigation periods so that images are provided to the viewer in real time. With the image being frozen in time, any image processing functions can . . , ~ ., .
~ , ~
: . ., .. , ~
1 3 hl t~
then be performed, such as save, zoom, change colors, move around and many others.
The system design utilizes state-of-the-art image processing and fiber optic camera technology. As stated above, the computer system controls all of the timing functions of the system and captures images for instantaneous, uninterrup~ed viewing. Each of the images can be individually processed or stored as a single picture to be callad up for later display or to be printed as a slide for later presentation.
A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description of the invention and accompanying drawings which set forth an illustrative embodiment in which the principles of the invention are utilizedl Brief Description of the Drawinqs Fig. 1 is a block diagram illustrating the general concept of an angioscopy imaging system in accordance with the present invention.
Fig. 2 is a pictorial illustration of an angioscopy imaging system in accordance with the present invention in an operating room environment.
Fig. 3 is a schematic diagram illustrating an angioscope catheter and irrigation system for an angioscopy imaging system in accordance with the prasent invention.
Fig. 4A is a pictorial view illustrating an angioscope centering catheter utilized in accordance with a preferred embodiment of the present invention.
Fig. 4B is a pictorial view illustrating the distal end of the angioscope centering catheter shown in Fig. 1 after splaying of the longitudinal slitted sections.
,:. ,. :
- ~.: . .. . . . :
:.-. : , .
-Fig. 4C is a cross-sectional view illustrating the catheter shown in Fig. 4A in a curved section of vessel prior to centering.
Fig. 4D is a cross-sectional view illustrating the catheter shown in Fig. 4A in a curved section of vessel after centering.
Figs. 5A-5H provide a series of schematic drawings illustrating a synchronized flush/imaging sequence in accordance with the present invention.
lo Fig. 5I is a timing diagram illustrating an automatic synchronized flush~imaging sequence in accvrdance with the present invention.
Fig. 6A is a cross-sectional view illustrating the use of a catheter ~or saline flush against blood flow.
Fig. 6B is a cross-sectional view illustrating the use of a catheter for saline ~lush with blood flow.
Fig. 7 is a cross-sectional view illustrating intraoperative angioscopy.
Figs. 8A and 8B are cross-sectional views illustrating introduction o~ flush solution utilizing a de~lector shield.
Fig. 9 is a schematic diagram illustrating a Truevision digitization board which has been altered as shown for application in accordance with the present inventiGn.
Fig. 10 is a schematic diagram illustrating a communications relay board utilized in the angioscopy imaging system shown in Fig. 1.
Fig. 11 is a pictorial illustration of a handset utilized in the angioscopy imaging system shown in Fig.
1.
Fig. 12 is a schematic diagram illustrating the circuitry of the handset shown in Fig. 11.
Fig. 13 is a flow sheet illustrating the function o~ the software provided in Appendix A.
- . , ~ ; , , ~ ., ; , .
ri ~ i~
Detailed Description of the Invention An angioscopy imaging system in accordance with the present invention is illustrated in Figs. 1-3, wherein like reference numerals specify like elements.
Fig. 1 provides an illustration of an angioscopy imaging system in accordance with the general concept of the present invention. The system operates under the control of a computer system which includes imaging cvntrol and irrigation control hardware. The imaging control hardware controls an optical scanning system, to be described in detail below, which is inserted into the interior of a vessel for generation of a digitized image. The irrigation control hardware controls an irrigation system, to be described in detail below, which provides pulsed introduction of flush solution into the interior of the artery to create a clear viewing field within the vessel for the optical scanning system. The computer system controls both the optical 2U scanning system and the irrigation system such that the generation of the digiti~ed image i5 synchronized with the pulsed introduction of the flush solution.
The system shown in Fig. 1 operates under the control of a central processing unit 10. The central processing unit 10 communicates with a digitization board 12 which generates a digitized image signal that corresponds to a live image captured by camera and light source 14, as described in detail below. The live image signal generated by camera/light source 14 is provided to the digitization board 12 via a video splitter/amplifier 16 which also provides the live image signal to monitor A for direct display. The digitization board 12 provides the digitized image signal to monitor B for display of a digital imagP~
Status information, which can be entered either via a ,. ~: ': ~' '. . ,., ' :
-~ 3 ~ . v ~
keyboard 18 or a handset 20, is displayed on a status display monitor C via monographic serial input/output card 22. CPU 10 can access both flo]ppy drive storage 23 and hard drive storage 25 via a disk controller 28. As will be described in detail below, pulses of pressurized saline flush solution are provided to an angioscope catheter on command ~rom the central processing unit lo which opens and closes a solenoid valve 30 via communications and relay board 32.
A pictorial illustration of an angioscopy imaging system in accordance with the present invention in an operating room environment is provided in Fig. 2.
Referring to Fig. 3, the optical scanning system includes an angioscope catheter 24 which houses an angioscope 26 which is attached to the video camera and light source 14. As stated above, the output signal of the video camera, designated "28" in Fig. 3, is provided both to a live monitor A and to the digitization board 12 for digitization and viewing on monitor B in real time, as will be described in greater detail below. The light source, designated "30" in Fig. 3, attaches to the eyepiece 26a of the angioscope 26.
Referring to Figs. 4~-4D, according to a pre~erred embodiment of the present invention, the angioscope catheter 24 comprises an inner catheter 32 which slides longitudinally with respeck to an outer sheath 34. The outer sheath 34 includes a plurality of slitted sections 36 formed circumferentially near its distal end. The outer sheath 34 is bonded to the inner catheter 32 at their distal-most points. ~hus, when the inner catheter 32 is pulled proximally with the outer sheath 34 held fixed, the slitted sections 36 of the outer sheath 34 splay out radially from the axis of the catheter 32 in a symmetrical fashion. This centers the angioscope during visualization, particularly in curved sections of the ~326~
vessel, as best shown in Figs. 4C and 4D. At the same time, it allows blood to flow in the vessel during the angioscopy procedure.
The angioscope 26 comprises an illuminated fiberoptic scope which extends through the inner catheter 32 for viewing through the open distal end of the catheter 32. The fiberoptic scope 26 may be of the lighted type manufactured by Baxter, Edwards LIS
Division, Santa Ana, California. Such scopes have central viewing strands which are surrounded by periphexal illuminating strands. Although not illustrated in Figs. 4A-4D, it should be understood that the proximal end of the scope 26 would be secured to the video camera and light source 14, as shown in Fig. 3.
As further shown in Fig. 4A, the angioscope centering catheter 24 also includes an irrigation port 38 for pulsatile irrigation of the vessel through the inner catheter 32. The angioscope 26 is held in place within the inner catheter 32 by means of an O-ring seal 40. A second O-ring seal 42 prevents blood from seeping out between the inner catheter 32 and the outer sheath 34. This second O-ring seal 42 slides longitudinally along a rigid section 44 that houses the inner catheter 32 to provide the splaying of the slitted sections 36 as described above. The rigid section 44 permits easy movement of the outer sheath and the inner catheter with respect to one another.
, 1~`
:, ,:
^ - ~ 3 ~
Referring back to Fig. 3, the angioscope centering catheter ~ is irrigated with sterile saline via the irrigation port 38 by means of an irrigation line 46 connected to a pressure vessel 48. The pressure vessel 48 houses a bag 50 of sterile saline which is attached to the irrigation line 46 by means O:e an irrigation line sipike 52. An 0-ring 54 seals the irrigation line spike 52 against the cover of the pressure vessel 48.
Compressed air is supplied to the pressure vessel 48 via an air pressure inlet 56. The pressure within the vessel 48 is adjusted by a regulator 58 and is measured by pressure gauge 60.
As stated above, pulses of pressurized saline are delivered to the irrigation port 38 on command from the computer system, which opens and closes a solenoicl pinch valve 30. The solenoid pinch valve 30 pinches a section of silicone t~bing 64 which lies in line with the irrigation line 46. The computer system may be programmed to deliver a sequence of timed irrigation pulses or a single pulse may be delivered by means of the foot pedal switch 34 connected to the central processing unit :lO via communications and relay board 32.
A saline flush pulse is activated for a duration of approximately one second, the duration of the pulse being dependent upon the patient, the siæe of the vessel and the type of catheter used. This is in contrast to the constant flush which is maintained during present angioscopic procedures. The clear analog image of the interior of the vessel which is captured by the camera during the flush is digitized and displayed on monitor B and the image is froæen until the next flush cycle.
A stable monitor image is desired, with no black screen or interrupted images between monitor picture changes. This requires storage of the incoming image from the angioscope 34. Therefore, the analog image signal generated by the video camera ~8 is digitized, stored in memory of the computer system and projecked on video monitor B. The image is refre~shed continuously, preferably at a rate of at least 30 times per second, until the image is changed with the next flush cycle, as illustrated in Figs. 5A-sH; the eye can perceive no black screen or interruption of the image at this speed of image refreshing.
As stated above, it is difficult to obtain a bloodless viewing field in the arteries because of the higher pressure and flow rate of blood in these vessels.
Therefore, as shown in Fig. 6, it is preferred that the angioscope 24 be inserted in the vessel such that the saline flush is directed against the direction of blood flow to create a bolus of saline ~lush solution that is visually clear for the focal distance of the angioscope 24. For the fiber optic scope identified above, this distance is approximately 15 mm. The flush is directed against the blood flow to achieve clearing with the minimal amount of saline. Experiments have shown that the flush stream is diluted if flushing is in the direction of blood flow, as shown in Fig. 6A, and clearing is only obtained with large volumes o~ flush.
On the other hand, flushing against the blood flow establishes a clear area where opposing fronts of flush and blood flow meet.
The catheter design used to flush against blood flow will vary with the situa~ion and application. For intraoperative angioscopy, the artery will be isolated in the operating room, and an arteriotomy made to admit the angioscope. As shown in Fig. 7, the artery will be clamped proximal and distal to the arteriotomy site. If the angioscope 24 is advanced in a distal direction, .: ,~.,;
..:
132~
there is no forward blood ~low, only backflow from collateral side branches. Thus, the flushing catheter may be a straight, open ended catheter. If the angioscope is advanced in a proximal direction, it is again going against blood flow and a straight, open ended catheter will again be appropriate.
For percutaneous angioscopy, the angioscope is introduced via a needle puncture and an introducing sheath into the artery. Usually, the access site is the femoral artery. If the angioscope is threaded distally, it lies in the same direction as the blood flow. The catheter must now flush backwards to form a bolus which goes against the blood flow. As shown in Figs. 8A and 8B, such a catheter may include a port which allows the ~lushing fluid to hit a deflecting shield at the distal tip of the angioscope, thus causing the flush to stream backwards. If the angioscope is threaded proximally, a straight, open ended catheter will be used.
The timing of the flush is important. In the peripheral arteries, the blood flow may come to a standstill or even reverse its direction of flow in diastole. On the other hand, in the coronary arteries, forward blood flow occurs during diastole. The flush may be timed with the cardiac cycle of systole and diastole by triggering the flush with an electro-cardiogram. An electrode pickup may be input to the computer to control the flush cycle.
Capture of the monitor image may be performed in several different ways. The image capture following the flush may simply occur at a fixed time interval, as shown in the flush cycle sequence provided in Fig. 5I.
Fig. 5I shows a flush cycle N that includes three flush ... ... .
, :
', ' ` -. - ~ ~;
~32~
puls~s per cycle. Each flush pulse i~3 of duration A, followed by a flush-interrupted period B. R designates the ~Irest9~ time between cycles. An updated image is "frozenl' on each falling edge of the 'IA" flush pulse.
Alternativ~ly~ th~ image capture mely be triggered by the computer controls. For example, a den~it~meter may be used to detect the presence of a d ear optical fieldO The clear field ~ay also be determined by examining the maximal image contrast ob~ained during the flush cycl~, and capturing the image when the image contra6t just starts to decrease from its optimal degree.
Alternatively, as stated above, control of the flush cycle may be per~ormed by the operator via the foot pedal ~witch which activates both the flush and imag~ capture ~unction~. A single depression of the pedal followed by its release may correspond to a single ~lush. Continued deprsssion o~ the foot pedal may then result in a repeated flush cycle at specified time interval~; ~or example, at one ~econd interval~. ~his allows angioscop0 adv~ncem~nt at a rate of 1,5 cm per second, with ~isual~zation of ~h~ en~ire length of the artery~ while allowing normal blood flow to occur during the flush interrupted cycles.
Referring back to Fig. 1, both the color Yideo display monitor A used for displaying ~he continuous live i~age produced by the c~mera and th~ analog RGB
monitor B used for displaying the digital im~ge produced by the imaging system are, ~or best re~ult~, high resolution monitors ~uch as a Sony*CPD-1303 or ~axan*
770 monitor. The ~ystem ~tatus monitor C ~ay b~ an industry standard monochrome monitor such as a Samsung amber monitor.
An AT compatible monographics ~erial inter~ace I/0 card 22 o~ generic manufac~ure is used to drive the * Ilrade-mark .
; :~
~ 3~S~
monochrome monitor C and provide s~anclard RS-232C
communications.
A specialized digitization board 12, illu~trated in Fig. 9, converts NTSc video images to a digitally generated ~acsimile represented on RGE~ monitor B. The board is the TARGA*16 product o~ Truevision Corp., Indianapolis, Indiana, which has been modified as illustrated in Fig. g for compatibiliky with the angioscopy imaging system of the present invention.
~he changes made to the Truevision board were primarily for the purpose of improving speed and resolution. Capacitance and crystal adjustmen~s were made to provide higher speed. Resistive adjustments were mad~ to improve resolution. New jumper configurations were provided to improve the compatability of the video synch ~ignals. The generic LM386 and 74138 components used by Truevision were replaced with more reliable National Semiconductor components.
A high resolution CCD camera and high intensity quartz light are used to provide a high resolution image to the 8yst2~ ~ The CCD camera is ¢onnected to the fiber optic angioscope, as described above. The light source is connected to the illuminating stands of the scope.
In the preferred e~bodiment, the CCD camera is a Sony CCD color chip ca~era, Model No. DXC102-, and the light is a generic 12Vdc 150W quartz bu}b.
The communi~ations and relay board, designed and manufactured by Nobles/Lai Engineering Inc., Carson, California, allows the central processing unit 10 to communicate with the solenoid~
The communisations and relay board is illu~trated schematically in Fig. 10.
The 74LS244-1 component is a byte wide line driver the enable pins o~ which ar~ tied to ground. Since the * Trade-mark `
.
132~
enable si~nal is active low, ~his chip always passes the address lines ~rom the central processing unit 10 to the communications relay board. The 74LS244-2 component is an identical byte wide line driver whose enable pins of which are also tied to ground. Since the enable signal for this driver is active low, it, too, ~lways passes the address and I/O lines from the central processing unit to the communications relay board. The 74LS245 component is a bi-directional buffer used to buff~r the data bus in from and out to the central processing unit 10 to the communications relay board. The 74LS00 and the 74LS08 components are simple gates used to configure inputs to the 74LS138 and 74LS245. The 74LS85 component is u~ed as a comparator to supply a toggle on its output pin when the inputs from the two 74LS244 components are equal. The 74LS138 ~s a 3-to-~ bit decoder used to further decode the address bus to deliver 32 consecutive addresses to the 74LS373 component. The 74LS373 i5 an 8 bit shift register used to supply a signal to the solenoid.
The foot pedal is a simple, generic N/O (Normally Open) momentary SPST (Single Pull Single Throw~ switch which provides ~imple control of irrigation and image capture.
The solenoid is an activated pinch valve which is controlled by the central processing unit 10 via the co~munications and relay board to regulate the ~low of sterile salin~ ts the catheter ~or irrigation o~ the v¢ sel, as described above.
The central processing unit 10 is an AT PC
~otherboard based on an In~el*80286 CPU. I~ is a 12MHz based system with 1 Mbyte on-board R~M.
The handset allows the surgeon or technician ~ast and easy access to the different modes and ~unctions of * Trade-mark .
~;
. ~ .
:: , ': :
the system. The handset is designed with a roller ball for quick changesO
The handse~ is shown pictorially in Fig. 11 and its circuitry is shown schematically in Fig. 12.
The three 74LS244 ~hips are use~d to buffer the inputs to the 74LS373 chips. The 74LS373 chips are used as 8 bit shift registers and are used to drive the handset LEDs. The 11 Mhz crystal provides the clock and timing for the 8749 CPU. The 4 x 5 XY matrix keyboard is a 20 key keyboard including 16 momentary push keys and 4 momentary toggle keys for th~ roller ball. The 8749C is a stand-alone microprocessor designed for keyboard encoding. In this application, it allows the handset keys to emulate function keys of the system keyboard. The foot pedal is a function of the keyboard, emulates a single-function key and is fed into the 4 x 5 matrix of the 8749C component.
The keyboard is a standard AT-style keyboard (e.g., Harvest 86-KEY) which allows the user to manually enter the same data as entered from the handset as well as alpha-numeric data ~e.g., patient information).
A disk controller is required to provide communications between the 80286 motherboard and both the hard disk drive and the floppy disk drive. The controller used in this application is generic in manufacture and can be any AT compatible controller capable of handling at least a 1.2 MByte floppy disk drive and a 30 Mbyte hard disk drive.
The system so~tware and all its necessary functions are all located on a user system disk, placed internally in the system. The system disk will start up the entire system when power is applied to the computer, checking each component for failures, and - reporting any malfunctions onto the user screen. Usin~
~ .
.. 1' ' :
1 3 ~
the user ~riendly technique, all menus and status are easy to read and understand.
The software is written in C86 C language. Most of its ~unction calls are dedicated to the digitizer board for image capturing and image processing.
source listing of the program is provided at the end of this speci~ication as Appendix A.
It should be understood that the invention is not intended to be limited by the specifics of the above-lo described embodiment, but rathex is de~ined by the accompanying claims.
"~
,, ~:, ':~, -17- ~32~.5~
/* SURGICAL ANGIOSCOPY I~AGE DIGITIZER PROGRAM
* Release 2.11 * Date: 4-18-88 ( Last update ) * Designer: Alex Kwok-Yeung, Lai ( Software ) * Anthony Nobles ( Hardware ) * Company: NOBLES/~AI Engineering * Description:
*
*
*
*
-* 1st printer port to control solenoid, * 2nd printer port take foot pedal control.
* Using Function keys & pad as inputs.
#include "stdio.h" /* standard I/O file */
#include "tardev.h"
#define TIMER_LO 0x460 /* tick counter for timer */
#define PAGE O /* defining constants */
#define SPACE 0x20 int tpnum, maxcycle, s-toptime float tdur, tndur, tintrvl, tmandur, tolive, tgrab /* tdur - duration time which the device is on.
* tpnum - number of durations in one cycle.
* tndur - device down time before next duration on.
* tintrvl - the elapse time between cycles.
* tmandur - manual duration time.
* tolive - time which live picture comes on in duration.
* tgrab - time to grab an image.
* maxcycle - maximum cycles in one automatic period.
/
int cntrol_flag=1 , /* l=auto, 0=manual */
int grab_flag = 1 ; /* 1=grab, 0=no grab */
char beep='~007' extern struct TARStruct *targe extern struct M8Struct *m8 APPENDIX A
. ~ i ;'.`'^
.. :. .
.
.
sin(~ 1326~$~
int i, i char ch, dh char filename[20] ; /* user input file name */
extern int tpnum,maxcycle, stoptime extern float tdur,tndur,tintrvl, tmandur,tolive,tgrab extern int bdos~) ; /* bios service routines */
bdos(5, `B') ; /* turn off bit O in parallel port */
stoptime = O `
tpnum=maxcycle=1 ;
tdur=tndur=tintrvl=tmandur=tolive=tgrab=0.5 greetingl) ;
GraphInit(-1) ; /* init TARGA board */
system("cls") menu() status~) ; /* status of the control device */
printf~"\n") SetLiveMode() ; /* live mode */
bdos~9," Press Red keys $") do {
ch = bdos(8) & Oxff } while ~ ch != OxOO ) ;
ch = bdos~8) & Oxff ; /* get red key codes */
while ~ ch != `S') /* DEL key */
{
switch ~ch) {
case `K': /* <- key */
bdos~2,0xOD) ; bdos~2,0xOA) ; /* CR-LF */
bdos(9, " Going to Live Picture Mode $"~ ;
SetLiveMode~) ;
system("cls") ; menu() bdos(2,0xOA) ; bdos(2,0xOA) status() ; break case `G': /* HOME key */
bdos~2,0xOD) ; bdos(2,0xOA) ; /* CR-LF */
bdos(9, " Save the Captured Picture. $") printf~"/nEnter Save under filename : ") gets~filename) printf~"/nFile is being saved.Please wait ...\n");
PutPic(filename,O,O,-1,-1,-1) system~"cls") ; menu() bdos~2,0xOA) ; bdos~2,0xOA) status~) ; break case `M' : /* - > */
bdos~2,0xOD) ; bdos~2,0xOA) ; /* CR-LF */
bdos~9, " Freeze the Picture. $") ;
GrabFrame~) ;
SetDispMode() ;
system~"cls") ; menu~) ;
bdos~2,0xOA) ; bdos~2,0xOA) ;
status() ; break ;
case `I': /* PgUP key */
bdos~2,0xOD) ; bdos~2,0xOA) /* CR-LF */
bdos~9, " Retrieve a Captured Picture. $") printf("/nEnter Picture file to be Retrieved : ") gets(filename) printf~"/nPicture is now being retrieved. : ") ;
printf~"Please Wait... \n") GetPic~filename,-1,-1,-1) ;
SetDispMode() system("cls") ; menu~) ;
bdos~2,0xOA) ; bdos~2,0xOA) status~) ; break ;
' ` '~
`:
-19- ~32~
case `0': EN~ key */
bdos(2,0xOD) ; bdos(2,0xOA) ; /* CR-LF */
bdos(9, " Change Irrigation Control. $") if (cntrl_flag) cntrl_flag = O
else cntrl_flag = 1 system("cls") menu() ; bdos(2,0xOA) ; bdos(2,0xOA) status() ; break case `Q': /* PgDN key */
bdos(2,0xOD) ; bdos(2,0xoA) ; /* CR-LF */
bdos(9, " Start Irrigation Procedure. $") if (cntrl_flag) automode() else manmode() system("cls") menu() ; bdos(2,0xOA) ; bdos(2,0xOA) status~) ; break case `B': /* FB key */
if (grab_flag) grab_flag = O
else grab_flag = 1 printf("\nGrabbing is now : ") if (grab_flag) printf(" Freezing at end. \n") else printf(" NO Freezing at end. \n") break Case `R': /* INS key */
picturejust() default :
printf("Wrong Key - Try again \n") bdos(2,0xOD) ; bdos(2,0xOA) printf(" Press Red Key ") do {
ch = bdos(8) & Oxff ~ while ( ch != OxOO
ch = bdos(8) & Oxff if (ch == `S') print f("\nDo you really want to quit ? \n") print f(" Hit Y to quit, or any other key to continue. ") ch = bdos(1) & Oxff if ((ch == `Y') :: (ch == `y')) break ;
}
GraphEnd() ; /* return icb memory */
system("cls");
printf("\n\n Program done, and All ends Well !! \n:) /*********** greeting ***********/
greeting() char ch system("cls") printf("\n\n ") printf("W e l c o m e T o \n") printf("T h e F a s c i n a t i n g W o r l d \n") printf("\n\n ") printf("O f B i o m e d i c a l T e c h n o l o g y \n") printf("\n\n ") printf("A N G I O S C O P Y I M A G E D I G I T I Z E R \n") ;
printf(" ") printf("Release 2.11 \n") printf("\n\n\n ") printf("Nobles/Lai Engineering \n") printf(" ") printf("940 E. Dominguez Ste. K, Carson CA. 90746 \n") ~?
.
' . . ' . .
, .
~ ~, . .;.
-` 132~
printf("Copyright @1988. Mar MCMLXXXVIII2-22 \n") printf(" Dr. Thomas Fogarty \n") printf("\n ") printf("Press the SPACE BAR to continue.") ch= bdos(7) ~ Oxff ; /* no echo on input */
while ( (int) ch != SPACE ) ch = bdos(7) & Oxff /*********** menu ***********/
menu() }
bdos(2,0xOA) ; bdos(2,0xOA) ; bdos(2,0xOA) bdos(~," $") bdos(9,"MENU SELECTION$") bdos(2,0xOD) ; bdos(2,0xOA) bdos(9," $") bdos(9,"=========================$") printf("\n\n RED keys are for main menu selection. \n") printf("\n\n BLUE keys are for irrigation uses only. \n") /*********** status ***********/
status() printf("\n") printf("CURRENT CONTROL SETTINGS ") printf("\n ==========================\n\n") printf("Irrigation Flush Time : ") ;
printf("%0.2f secs.\n", tdur) printf(" Live Picture Starting Time : ") printf("%0.2f secs.\n", tolive) printf("Image Grab Time (from start) : ") printf("%0.2f secs.\n", tgrab) printf("Irrigation Pause Time : ") printf("%0.2f secs.\n", tndur) printf("Number of Flushings / cycle : ") printf("%d \n", tpnum) printf("At Rest Cycle Time : ") printf("%0.2f secs.\n", tintrvl) printf("Maxium cycles in whole period : ") printf("%d \n", maxcycle) printf("Current Flushing Control is -> ") if(cntrl_flag) printf("AUTOMATIC \n") ; - .
else printf("MANUAL \n") printf(" Current Grabbing Control is -> ") if(grab_flag) printf("Freezing at end \n") else printf("No freezing pictures \n") printf("\n") }
/*********** manual status ***********/
man_status() printf("\n") printf("CURRENT CONTROL SETTINGS ") printf("\n ==========================\n\n") printf("Irrigation Flush Time : ") printf("%0.2f secs.\n", tmandur) printf("Live Picture Starting Tirne : ") printf("%0.2f secs.\n", tolive) printf("Image Grab Time (from start) : ") printf("%0.2f secs.\n", tgrab) printf("Current Grabbing Control is -> ") if ( grab_flag) printf(" freeze at end \n") else printf("No freeze at end \n") printf("\n") ,, . :
., .. : .
, :. . . ..
/*********** chg ift ***********/
chg_ift() char ch ; int kj printf("\n") printf("Irrigation Flush Time : ") ;
printf("%0.2f secs.\n", tdur) printf("Enter new settings ? ") while ( key_scan() == -1 ) ;
kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) {
scanf("%f",&tdur) getchar() if (tdur < 0.2) tdur = 0.2 tmandur = tdur }
/*********** chg_pgt ***********/
chg_pgt() char ch ; int kj printf("\n") printf("Picture Grab Time : ") ;
printf("%0.2f secs.\n", tgrab) printf("Enter new settings ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) {
scanf("%f",&tgrab) getchar() if (tgrab ~ :: (tgrab > tdur)) tgrab =tdur /*********** chg_lcot ***********/
chg_lcot() char ch ; int kj printf("Live Picture Starting Time : ") printf("%0.2f secs.\n", tolive) printf("Enter new time ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj =- OxlCOD) return if (isdigit(kj) scanf("%f",&tolive) getchar() if ((tolive < 0) !! (tolive > tdur)) tolive = 0 /*********** chg_ipt ***********/
chg_ipt() char ch ; int ki printf("\n Irrigation Pause Time : ") printf("%0.2f secs.\n", tndur) printf("Enter new time ? ") while ( key_scan() == -1 ) kj = key_scan() if (kj == OxlCOD) return if (isdigit(kj) {
scanf("%f",&tndur) getchar() if (tndur ~ 0.1) tdur = 0.1 -' .
/**************** chg nfc **********/chg nfc() -22-char ch ; int kj ;
printf ("\n Numbe~ of Flushings per Cycle ; ");
printf ("%d \n", tpnum) ;
printf (" Enter new number ? ") ;
while ( key_scan() == -1 ) ;
Kj = key scan() if ( kj == OxlCOD ) return if ( lsdigit (kj) ) scanf ("%d", &tpnum) getchar() if ( tpnum < 1 ) tpnum = 1 ;
}
/**************** chg_rct **********/
chg_rct () char ch ; int kj ;
printf ("\n At Rest Cycle Time : ") printf ("%0.2f secs. \n", tintrvl) printf (" Enter new rest time ? ") ;
while ( key_scan() == -1 ) kj = key scan(~ ;
if ( kj == OxlCOD ) return if ( isdigit (kj) ) scan f ("%f", &tintrvl) getchar () ;
if ( tintrvl < 0.1 ) tintrvl = C.1 ;
}
/**************** chg_ncp **********/
chg_ncp() char ch ; int kj ;
printf ("\n Maximum number of cycles / period : ");
printf ("%d \n", maxcycle) printf (" Enter new period cycle number ? " ) ;
while ( key_scan () == -1 ) ;
kj = key_scan() ;
if (kj == OxlCOD ) return if ( isdigit (kj) ) scanf ("%d", &maxcycle) getchar() if ( max cycle < 1 ) maxcycle = 1 ;
/**************** manmode() **********/
manmode() int lptst, ntmandur, ntlive, ntgrab ;
char ch ; int j ;
man start :
system ("cls") ;
man_status() printf ("\n BL~E key selections ... \n") ;
for (;;) do { ch = bdos(8) & Oxff ; } while (ch != 0x00 ) ;
ch = bdos(8) & Oxff ;
switch (ch) ~r~!~
, ., . ..~ ..~,.:
...
~326~
{
case `;' : /* F1 key */
chg ift() ;
break ;
case `<` : /* F2 key */
chg_pgtt) break ;
case `=' : /* F3 key */
chg_lcot() break ;
case `B' : /* E8 key */
if (grab flag) grab flag = 0 ;
else grab flag = 1 ;
printf ("\n Grabbing is now ");
if (grab flag) printf (" Freezing at end.~n");
else printf (" NO freezing at end.\n);
break ;
case `S' : /* DEL key */
case `C' : /* F9 key */
case `D' : /* F10 key */
break ;
default : printf (" Wrong key - try again . \n") ;
if (ch == `S') break ;
if ~ch == `C') break ;
if ~ch == `D') break ;
system ("cls") printf ("\n MANUAL IRRIGATION CONTROL MODE \n\n") man status () ;
}
if (ch == `S') goto man out ;
if (ch == `D') goto man out ;
if ((tolive >= tmandur) :: (tolive < 0)) tolive = 0 ;
if ((tgrab >= tmandur) :: (tgrab < tolive)) tgrab = tmandur ;
ntlive = (toli~e * 1000) / 55; /* live pic on time */
ntmandur = ~tmandur * 1000) /55 ; /* 55 msec loop count */
ntgrab = (tgrab * 1000) / 55; /* grab time */
lptst = 0;
system ("cls") ; t man status () ;
for (;;) /* will exit only if q hit */
{
stoptime = 0 , lptst = 0 ;
j = 0 ; ch = `a' ;
printf ("\nPress ANY KEY or FOOT PEDAL to start, or ") ;
printf (" hit q to quit at any time.") ;
while (j == 0) {
if (prt_err(l)) j = i ;
: else if (key scan() != -1 {
j = i;
ch = bdos (8) ~ Oxff ;
}
}
if ( (ch == `q') :: (ch == `Q')) break ;
lptst =~on dur_man (ntmandur,ntlive,ntgrab) printf (" %d", stoptime * 55 ) ;
for ~ j = i ; j < 5000 ; j += 1 ) lptst += 1 ; /* delay */
}
goto man start ;
man_out :
printf ("\n Quitting Maanual Procedure ....\n") ~.
: .
132~
/**************** automode() **********/
automode() -24-int kloop, nton, ntoff, ntrest, ntlive, lptst, ntgrab ;char ch ; int j, jcycle ;
auto start :
system ("cls") ;
status() printf (" BLUE key selections ... \n") ;
for (::) {
do { ch = bdos(8) & Oxff ; } while ( ch !=OxOO ) ;
ch = bdos(8) & Oxff :
switch (ch) {
case `:' : /* F1 key */
chg_ift() :
break :
case `<` : /* F2 key */
chg pgt () :
break :
case `=' : /* F3 key */
chg lcot() ;
break ;
case `>' : /* F4 key */
chg ipt() break ;
case `?' : /* F5 key */
chg nfc() break ;
case '@' : /* F6 key */
chg rct() break ;
case `A' : /* F7 key */
chg_ncp() break;
case `B' : /* F8 key */
if (grab flag) grab flag = O ;
else grab flag = 1 ;
printf ("\nGrabbing is now ") if (grab flag) printf ("freezing.\n") else printf (NO freezing. \n") ;
break ;
case `C' : /* F9 key */
case `S' : /* DEL key */
case `D' : /* F 10 key */
break -default : printf ("Wrong Colour Key - try again \n") ;
}
if (ch == `S') break :
if (ch == `C') break :
if (ch == `D') break :
system ("cls") status () :
printf ("BLUE key selections ... \n") :
if ( ch == `S') goto auto_out if ( ch == `D') goto auto out ;
if ( tgrab < tolive) tgrab = tdur :
if ( tolive >= tdur ) tolive = O :
nton = (tdur * 1000) / 55 : /* duration on period */
ntoff = (tndur * 1000) /55 ; /* duration off period */
ntrest = (tintrvl * 1000) / 55 ; /* cycle rest time */
ntlive = (tolive * 1000) / 55 ; /* live pic on ti.me */
ntgrab = ( tgrab * 1000 ) / 55 ;
lptst = O ;
for (,;) /* only quit ~hen hit q */
, " ~.
; ': ,:
, ~, ~32~
{
printf ("\nPress A, KEY or FOOTPEDAL to start or ") ;
printf (" hit q to quit at any time. ") ;
j = O;
while ( j == 0) if (prt err (1)) j = 1 ;
else if (key scan () != -1_ {
j = l;
ch = bdos(8) & Oxff ;
}
if (ch == `q') :: (ch == `Q')) break ;
jcycle = maxcycle ;
while ( jcycle > 0 ) {
kloop = tpnum - 1 ;
lptst = on dur man~nton,ntlive,ntgrab) if (lptst == 999) break ;
while (kloop > 0) {
lptst = off dur (ntoff);
if (lptst == 99) break ;
lptst = on dur (nton, ntlive, ntgrab) ;
if (lptst == 999) break ;
kloop -= 1 ;
if (lptst == 999) break ;
lptst = off dur (ntrest) ;
if (lptst == 999) break ;
bdos(6,7) ; bdos (6,7); bdos (6,7) ;
jcycle ~
for ( j = 1 ; j ~ 8500 j += 1 ) lptst += 1 ;
}
goto auto start ;
auto_out :
printf("\n Quitting automatic procedure ... \n ) /**************** duration on **********/
on dur(tsecs,lvtsecs,grabsec) int tsecs, lvtsecs, grabsec ;
unsigned -ticref, kbstat ;
int i, j, k ;
unsigned int kbch ;
char kch ;
bdos (5,`A') ; /* turn bit 0 on in port */
i = O;
while (tsecs >0) :
if ( i >= lvtsecs ) SetLiveMOde() ;
tickref = peek(TIMER LO,0) while (tickref == peek(TIMER_LO,0));/* equal after 55msec */
if ( key scan() != -1 ) {
kch = bdos(8) ; /* non echo get char */
if (grab flag) ( GrabFrame () ;
SetDispMode() ;
}
bdos(5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
else if ( prt err (1) ) `
--26- ~3~
if (grab flag) 1 GrabFrame () SetDispMode() bdos (5, `B') ; /* bit O off */
return (999) ; /* out and quit */
tsecs -= 1 ; .
i += i;
j = i % 1~ ; /* 1 sec interval */
if (j 3= O) bdos (6,7) ; /* second testing */
if ( i > grabsec ) if (grab flag) { GrabFrame () ;
SetDispMode() ; }
bdos (5, `B') ;
return (O) ;
}
bdos ~5, 'B') ;
if (grab flag) I GrabFrame() SetDispMode() ; } ~.
return (O) ; /* O = > o.k. */
/**************** duration off **********/
off dur (tsecs) int tsecs ;
int i, j ;
unsigned tickeref ;
char kch ;
bdos (5, `B') ;/* bit O off */
i = O;
while (tsecs ~ O) tickref = peek(TIMER_LO,O) ;
: while (tickref == peek(TIMER LO,O) if ( key scan() != -1 ) kch = bdos(8) ;
return (999) else lf ( prt err (1) ) return (999) }
tsecs -= 1 ;
i += l;
j = i % lB -if (j == O) bdos (6,7) ; /* second testing */
return (O) ; /* all o.k. */
/**************** Picture Adjusts **********/
picturejust () int kk ;
char dh ;
system ("cls") ;
printf("\n\n This procedure adjusts the following parameters:
\n" ) printf (" - the Hue \n") ;
printf (" - the Contrast \n") ;
printf (" - the Saturation .... of a LIVE PICTURE \n\n") ;
printf ("Press ( H,C,S or Q to quit ) : ") ;
dh = bdos(7) & Oxff ;
while ((dh != `Q') && (dh != `q')) .
.
.
132~
switch (dh) { -27-case `H' case ~h' printf ("Hue, Enter Level (0-31) : ") ;
scanf(%d \n",~kk) ; getchar () ;
SetHue(kk~ ;
break ;
case `C':
case `c':
printf("Contrast, Enter Level (0-31) : ") ;
scanf("%d \n,&kk) ; getchar () ;
SetContrast(kk) break ;
case `S':
case `s':
printf("Saturation, Enter Level (0-7) : ") ;
scanf ("%d \n, &kk) ; getchar () ;
SetSaturation (kk) break ;
default :
printf (~Unknown Command ??? \n") ;
}
printf ("\n Press ( H,C,S or Q to quit ) : ") ;
dh = bdos (7) & Oxff ;
printf (" Quit. \n") ;
/**************** manual duration on **********/
* difference with on dur is that during the 1st three-quarter * second of the starting of flushing, the program will not * recognise the keyboard nor the foot-pedal, so that it will * not detect a stop flushing false signal.
*/
on dur man (tsecs,lvtsecs,grabsec) nt tsecs, lvtsecs, grabsec ;
unsigned tickref, kbstat ;
int i, j, k ;
unsigned int kbch ;
char kch ;
bdos (5,`A') ; ~* turn bit 0 on in port */
i = O, while ~tsecs >0) {
if ( i >= lvtsecs ) SetLiveMOde () ;
tickref = peek (TIMFR LO,0)) ; /* equal after 55msec */
if (i >= 14) {
if (key scan() != -1 ) {
kch = bdos(8) ; /* non echo get char */
if (grab flag) { GrabFrame () SetDispMode() ; }
bdos (5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
else if (prt err (1) ) if (grab flag) { GrabFrame() SetDispMode() bdos (5, `B') ; /* bit 0 off */
return (999) ; /* out and quit */
, . ~
.
, ~:
. . .
} 132~
}
tsecs -= 1 ;
i += 1, stoptime += l ;
j = i ~ 18 ; /* 1 sec interval */
if (j == O) bdos (6,7) ; ~* second testing */
if (i >= grabsec ) {
if (grab flag) { GrabFrame() SetDispMode() ;
bdos (5, `B') ;
return (O) ;
}
bdos (5, `B') ;
if (grab flag) ~ GrabFrame() SetDispMode() return (0~ ; /* b = , o . k. */
~j^l ,, : .
.
.
Claims (26)
1. An angioscopy imaging system for visualizing the interior of a vessel, such as an artery, the system comprising:
a) a central processing unit;
b) optical scanning means for insertion into the interior of the vessel for generating an image of the interior of the vessel, the optical scanning means being connected to the central processing unit for control thereby; and c) irrigation means for introducing pulses of flush solution into the interior of the vessel to provide a clear viewing field within the vessel for the optical scanning means, the irrigation means being connected to the central processing unit for control thereby such that the generation of the image is synchronized with the pulsed introduction of flush solution.
a) a central processing unit;
b) optical scanning means for insertion into the interior of the vessel for generating an image of the interior of the vessel, the optical scanning means being connected to the central processing unit for control thereby; and c) irrigation means for introducing pulses of flush solution into the interior of the vessel to provide a clear viewing field within the vessel for the optical scanning means, the irrigation means being connected to the central processing unit for control thereby such that the generation of the image is synchronized with the pulsed introduction of flush solution.
2. An angioscopy imaging system as in Claim 1 and further including input means connected to the central processing unit for introducing control commands to the central processing unit for controlling the optical scanning means and the irrigation means.
3. An angioscopy imaging system as in Claim 2 and further including a system status monitor connected to the central processing unit for providing a listing of possible control commands to the central processing unit.
4. An angioscopy imaging system as in Claim 3 wherein the system status monitor includes means for providing information relating to the status of the optical scanning means and the irrigation means.
5. An angioscopy imaging system as in Claim 1 and further including a display monitor connected to the central processing unit for displaying the image generated by the optical scanning means.
6. An angioscopy imaging system as in Claim 1 wherein the optical scanning means comprises means for digitizing the image.
7. An angioscopy imaging system as Claim 6 and further including means for displaying the digitized image.
8. An angioscopy imaging system as in Claim 8 and further including means for storing the digitized image.
9. An angioscopy imaging system for visualizing the interior of a vessel, such as an artery, the system comprising:
(a) a central processing unit;
(b) optical scanning means for insertion into the interior of the vessel for capturing a live image of the interior of the vessel;
(c) a camera for receiving the live image captured by the optical scanning means and generating an electrical output signal representing the live image;
(d) digitizer means for converting the electrical output signal to corresponding digital data, the digitizer means being connected to the central processing unit for receiving digitization control signals therefrom;
(e) irrigation means for introducing flush solution into the interior of the vessel to provide a viewing field for the optical scanning means, the irrigation means being connected to the central processing unit for receiving irrigation control signals therefrom such that the conversion to digital data is synchronized with the introduction of flush solution; and (f) a monitor responsive to the digital data for displaying a digitized image representing the live image.
(a) a central processing unit;
(b) optical scanning means for insertion into the interior of the vessel for capturing a live image of the interior of the vessel;
(c) a camera for receiving the live image captured by the optical scanning means and generating an electrical output signal representing the live image;
(d) digitizer means for converting the electrical output signal to corresponding digital data, the digitizer means being connected to the central processing unit for receiving digitization control signals therefrom;
(e) irrigation means for introducing flush solution into the interior of the vessel to provide a viewing field for the optical scanning means, the irrigation means being connected to the central processing unit for receiving irrigation control signals therefrom such that the conversion to digital data is synchronized with the introduction of flush solution; and (f) a monitor responsive to the digital data for displaying a digitized image representing the live image.
10. An angioscopy imaging system as in Claim 9 and further including means for storing the digital data.
11. An angioscopy imaging system as in Claim 10 wherein the irrigation means is responsive to irrigation control signals from the central processing unit to introduce a pulsatile sequence of flush solution to the interior of the vessel.
12. An angioscopy imaging system as in Claim 11 wherein the digitizer means is responsive to digitization control signals to update the digital data provided to the monitor in synchronization with the pulsatile introduction of flush solution.
13. An angioscopy imaging system as in Claim 12 wherein the digital data is provided to the monitor periodically between digital data updates to refresh the digital image displayed by the monitor.
14. An angioscopy imaging system as in Claim 13 wherein the digital data is refreshed at least thirty times per second.
15. An angioscopy imaging system as in Claim 12 wherein the digital data provided to the monitor is updated a preselected time interval after a pulsed introduction of flush solution.
16. An angioscopy imaging system as in Claim 12 and further including means for detecting the optical density within the vessel such that the digital data provided to the monitor is updated upon detection of a predetermined optical density.
17. An angioscopy imaging system as in Claim 12 and further including means for examining the live image contrast obtained during the sequential introduction of flush solution such that the digital data provided to the monitor is updated when the live image contrast decreases from its maximum.
18. An angioscopy imaging system as in claim 9 and further including input means connected to the central processing unit for introducing control commands thereto for controlling the irrigation control signals provided to the irrigation means.
19. An angioscopy imaging system as in Claim 18 wherein the irrigation means is responsive to irrigation control signals from the central processing unit to introduce a pulsatile sequence of flush solution to the interior of the vessel.
20. An angioscopy imaging system as in Claim 19 wherein the digitizer means is responsive to digitization control signals to update the digital data provided to the monitor in synchronization with the pulsatile introduction of flush solution.
21. An angioscopy imaging system as in Claim 20 wherein the digital data provided to the monitor is updated a preselected time interval a pulsed introduction of flush solution.
22. An angioscopy imaging system as in Claim 18 wherein the input means includes a keyboard.
23. An angioscopy imaging system as in Claim 18 wherein the input means includes a foot pedal.
24. An angioscopy imaging system as in Claim 18 wherein the input means includes a handset.
25. An angioscopy imaging system as in Claim 9 and further including a second monitor responsive to the electrical output signal to provide the live image.
26. An angioscopy imaging system as in Claim 9 and further including a status monitor connected to the central processing unit for displaying information relating to the status of the imaging system.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18759188A | 1988-04-28 | 1988-04-28 | |
US187,591 | 1988-04-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1326554C true CA1326554C (en) | 1994-01-25 |
Family
ID=22689606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000583078A Expired - Fee Related CA1326554C (en) | 1988-04-28 | 1988-11-15 | Real time angioscopy imaging system |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0340145A1 (en) |
JP (1) | JPH0213424A (en) |
CA (1) | CA1326554C (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4000410C2 (en) * | 1990-01-09 | 1998-05-14 | Baeuerle Dieter | Endoscope with an instrument channel |
WO1997017010A1 (en) * | 1995-11-10 | 1997-05-15 | Erbe Elektromedizin Gmbh | Method and device for rinsing |
WO2010101730A1 (en) | 2009-03-04 | 2010-09-10 | Smith & Nephew, Inc. | A system for use in surgical procedures |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4204528A (en) * | 1977-03-10 | 1980-05-27 | Zafmedico Corp. | Method and apparatus for fiber-optic intravascular endoscopy |
JPH0824665B2 (en) * | 1986-11-28 | 1996-03-13 | オリンパス光学工業株式会社 | Endoscope device |
-
1988
- 1988-11-15 CA CA000583078A patent/CA1326554C/en not_active Expired - Fee Related
-
1989
- 1989-01-16 EP EP89630011A patent/EP0340145A1/en not_active Ceased
- 1989-03-16 JP JP1062364A patent/JPH0213424A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP0340145A1 (en) | 1989-11-02 |
JPH0213424A (en) | 1990-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4998972A (en) | Real time angioscopy imaging system | |
US5730731A (en) | Pressure-based irrigation accumulator | |
US9474440B2 (en) | Endoscope tip position visual indicator and heat management system | |
US4827907A (en) | Intra-observation apparatus | |
US7610081B2 (en) | Method and device for generating an image using optical coherence tomography | |
US8996086B2 (en) | Digital mapping system and method | |
US8690765B2 (en) | Endoscope apparatus and image processing apparatus | |
EP2996621B1 (en) | An endoscope tip position visual indicator and heat management system | |
US5380291A (en) | Visually directed trocar for laparoscopic surgical procedures and method of using same | |
US20040230094A1 (en) | Remote operation support system and method | |
JP2001161640A (en) | Surgical operation apparatus with integrated image censor | |
CN102762160A (en) | Ultrasound suction system and ultrasound suction method | |
EP2704439A1 (en) | Medical image recording apparatus, recording method of the same, and medical image recording program | |
US11141053B2 (en) | Endoscope apparatus and control apparatus | |
CA1326554C (en) | Real time angioscopy imaging system | |
CN116744834A (en) | Medical image processing device, method, and program | |
US20100079586A1 (en) | Video signal selector and medical image filing system therewith | |
US20200187905A1 (en) | Imaging device | |
US20240148400A1 (en) | Unitary device for vessel harvesting and method of using same | |
CN114098625B (en) | Portable joint exploration hose mirror and manufacturing method | |
JP2575107B2 (en) | Endoscope cautery device | |
US11986164B2 (en) | Endoscope, endoscopic system and method of operating the endoscopic system | |
CN217244333U (en) | Simple joint exploration hose mirror | |
JP5288909B2 (en) | Endoscope system and switch | |
JP2008253587A (en) | Endoscope system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKLA | Lapsed | ||
MKLA | Lapsed |
Effective date: 19960727 |