CA1175108A - Apparatus for monitoring and utilizing a data processor - Google Patents
Apparatus for monitoring and utilizing a data processorInfo
- Publication number
- CA1175108A CA1175108A CA000442114A CA442114A CA1175108A CA 1175108 A CA1175108 A CA 1175108A CA 000442114 A CA000442114 A CA 000442114A CA 442114 A CA442114 A CA 442114A CA 1175108 A CA1175108 A CA 1175108A
- Authority
- CA
- Canada
- Prior art keywords
- heart
- monitoring
- storing
- heartbeat
- location
- 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
Links
Landscapes
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
ABSTRACT
Apparatus for monitoring and storing heart activity signals is disclosed as including a data processor illustra-tively in the form of a digital microprocessor. The monitoring and storing apparatus comprises a memory comprising first and second pluralities of storage locations, a circuit operating in a real time frame for sampling at a regular rate the patient's heart activity and for storing such sample signals in corres-ponding locations of said first plurality, and the data pro-cessor for processing the signals stored in the first plurality and for storing the processed signals in selected locations of said second plurality. The storage of the signals in the second plurality is performed in a second computer time frame and at a rate faster than the real time sampling rate. A sampling clock provides a sampling clock signal to the sampling circuit whereby the samples of the patient's heart activity are taken. A second computer clock provides computer clock signals to at least a portion of the data processor whereby the processing of the heart activity is effected in the relatively fast computer time frame. The data processor comprises a first portion or means that operates in response to the sample clock signal for evaluating the heart activity signals to determine the existence of a valid heartbeat and a second portion operating in the computer time frame for processing the detected heartbeat and in particular for determining the interval therebetween, which is evaluated to determine whether the heartbeat is occurring with a regular rhythm or not.
Apparatus for monitoring and storing heart activity signals is disclosed as including a data processor illustra-tively in the form of a digital microprocessor. The monitoring and storing apparatus comprises a memory comprising first and second pluralities of storage locations, a circuit operating in a real time frame for sampling at a regular rate the patient's heart activity and for storing such sample signals in corres-ponding locations of said first plurality, and the data pro-cessor for processing the signals stored in the first plurality and for storing the processed signals in selected locations of said second plurality. The storage of the signals in the second plurality is performed in a second computer time frame and at a rate faster than the real time sampling rate. A sampling clock provides a sampling clock signal to the sampling circuit whereby the samples of the patient's heart activity are taken. A second computer clock provides computer clock signals to at least a portion of the data processor whereby the processing of the heart activity is effected in the relatively fast computer time frame. The data processor comprises a first portion or means that operates in response to the sample clock signal for evaluating the heart activity signals to determine the existence of a valid heartbeat and a second portion operating in the computer time frame for processing the detected heartbeat and in particular for determining the interval therebetween, which is evaluated to determine whether the heartbeat is occurring with a regular rhythm or not.
Description
This appl:ication i3 a clivisiona.l. of our Canadian patent application Serial. No. 369,045 f:ilecl January 22, 1981.
I. DESCRIPTION
Technlcal Field This invent.i.on relates to apparatus for compact:ing and storiny data indicative of a patient's heart activity.
Backgrou_d o' The prior ar-t has recognized, as described in the article entitled "The Use of R-R In.terval and Different Histo-grams in Classifying Disorders of Sinus Rhythm" by P.M.M. Cash-man appearing in the January 1977 issue of Journal of Medical Engineering Technology, the need to provide heart activ.ity and in particular ECG recordinys over a relatively long period of time from ambulatory patients. The primary objective o:f such recordings i5 to permit identification of infrequent and tran-sient disturbances of cardiac rhythm, which may be important in diagnosing patients with vague or intermi-ttent symptoms such as di2~y spells, blackouts, and fainting attacks. While recording for a longer period of time, the physician's interest is to de-tect short, specific dysrhythmic events which occupy only asmall percentage of the total recording time. Such dysrhythmic events are considered as singularities in a background rhythm.
Typically, the physician is interested not only in the back-ground rhythm but also the specific dysrhythmic events which may comprise slower responses of the heart to influences such as s~a,~
drug treatment or psychological stress over long periods of time. In this regard, it may be desirable to compare the long recordings from either different patients or from the same patient at di~ferent times.
At present, the use of ambulatory heart monitors typiied by the Holter recorder, is well known in the art.
The Holter technique typically records the patient's ECG
activity for at least 24 hours. The difficulty with the use of a Holter recorder is that it provides a large volume of information which requires processing and analysis. Such analysis is usually time consuming and expensive. Typically, the review and processing time may be reduced by reading out and displaying the data at increased speeds, typicall~ multi~
ples of 25, 32, 60, and 120 of the normal playback rate. ~n order to display the heart data, and in particular the QRS
complex, with sufficient clarity, it may be necessary to use recording apparati with ~requency responses in excess of 12 kHz. This is possible with ultraviolet recorders, fiber optical recording oscilloscopes, or inklet records, all of which are expensive.
The prior art has suggested a variety of apparati for the processing and display of a patient's heart activity data. Such apparatus may include a detector for automatically sensing a dysrhythmia and in response thereto, stores and dis-plays a sample of the patient's ECG either directly onto paperor onto a screen. Further, ajcontourogram may be provided by a storage oscilloscopeoroscilloscope camera whereby subsequent lengths of a patient's ECG are displayed one beneath the other.
Each such segment or tracelength is proportional to the beat-to-beat interval and the right-hand edge of the trace gives a continuous record of the R-R interval trend. One of the most common methods of presenting ECG data is to provide a heart rate trend wherein the R-R interval is continuously measured and the R-R interval data is segmented into continous time periods. In particular, the rate or interval of the heart~eat , ~751~8 is averaged to provide a display of average heart rates or intervals for a series of adjacent time periods. For resolv-ing individual beats on a trend plot, it may be preferable to plot the instantaneous rate in a form of a trend plot.
In add~ition to the methods of display as discussed above, there is the need to identify and to highlight the iso-lated occurrence of an abnormal or ectopic beat. Typically, the ectopic beat is detected and is counted during the course of the heart monitoring period. Apparatus has been provided to detect premature heartbeat. The degree of prematurity can often be preset by the operator to provide selection of the beats to be detected. The output of such detectors is applied to a counting circuit, a trend recorder, or some form of alarm depending upon the desired application. Several techniques have been used to detect the abnormal shape of the patient's ECG signal including simple integrators, filters, and digital pattern recognition systems. It is contemplated that normal ECG signals are analyzed to determine the limits of occurrence of the peaks of the QRS complexes, and to compare such limits with the incoming signal to determine whether the present ECG
signal fits within these predetermined, normal limits.
In more sophisticated systems, the patient's normal ECG signal is detected and stored. In subsequent monitoring, the patient's normal signal is used as a template against which to compare the current heart data. U. S. Patent 4,115,864 discloses such a cardiac monitor, utilizing a computer to con-trol the storage of the patient's normal signal, to process the inputted ECG signal into digital segments, and to compare those segments with corresponding segments of the previously stored normal ECG of the patient. When the stored normal signal does not fit the current signal, an alarm or detector circuit is actuated and the number of occurrences of that ectopic signal is stored within the memory of the computer.
The described system is capable of providing a trend history of such ectopic beats in the form of a histogram or trend plot.
.. ..
In any processing of ECG data, it is necessary to use dis-crimination techniques to extract a trigger pulse for each cardiac cycle.
In most instances, the detection circuit triggers on the R-wave, and it i9 thus necessary to distinguish the R-wave of the QRS complex from the rest of the signal. It is contemplated that lt may be necessary, in the presence of heavy background noise, to terminate the monitoring for the dllration of the high level background noise. In other instances, the detection circuitry ~ay provide an alarm 50 that the operator can intervene.
Noting the desire to provide monitoring for long periods of time of a patient's heart activity, the continuouY monitoring by the Holter monitor provldes a complete record at relatively inexpenslve cost. On the other hand, the methods of processing and compacting the data for slmpler, limited display oftentimes requires a ~ore complex system of increased cost.
To avoid either pitfall, ~t has been suggested that the data b& presented in the form of an R-R interval histogram. A histogram presents heart activity data taken over a period of time in a compact manner, wherein the successive intervals between ~-waves are computed and are classified as to their dura-tion. ~ shown in Figure 1, the X axis is in seconds corresponding to the R-R interval, whereas the Y axis provides the number of beats that occur within each interval. Such a presentation provides a large data reduction in a vlsual way which allows easy comparison between the histograms o the same patient taken at different times and between different patients. The R-R interval histogram (IH) is formed by generating an array of columns or bins, each corresponding to a range of values of beat-to-beat tor R-R) interval. As each ECG complex is detected, the tiDIe interval between it and its predecessor is measured and the total in the appropriate bin incre-mented. A typical histogram might contain a hundred bins, each having a width of 20 milliseconds, giving a total range of R-R intervals from O to 2 seconds. A bin capacity of 4,095 beats (a 12-bit binary word) will permit about 4 hours of normal heart monitoring.
A variation of the R-R interval histogram is the R-R interval difference hlstogram (IDH~. l'he IDH is ~ormed similarly except that the quantity as displayed along the X axis ls ~he amourlt by which the R-R
lnterval changes between successive beats. The central bin is designated 0, i.e., 0 difference between successive beats, and a hundred columns provide a range between -1 second through ~) to +1 second, with a bin width of 20 milliseconds. The mean of the inten~al differences i9 always very close to 0. The IDH provides an indication of the manner of change o the heartbeat, where the width of the IH i9 the measure of the spread o~ heart rates about the mean value. It is apparent that the use of both the IH
and the IDH provide the physician with a powerful tool for d~agnosis of ; the patient's heart.
Further, U.S. Patent 4,146,029 describes a system implanted within the body of the patient for dispensing medication into the patient's body. The system is implemented by a microprocessor for the control of the process whereby each QRS complex of the patient's heart is det~cted as to the length of the QRS co~plex and to the interval therebetween. A program of comparing the length of the QRS complex to an acceptable length is ~; provided to determine the validity of each QRS complex and further to first ~ calculate the interval between ~RS complexes and to compare the measured ;~ 20 length to a known or standard length for a particular patient. More specifically, the process compares the length to determine how much shorter the measured ongoing intervals are with regard to the normal length and dependent upon the decrease of length, i.e., the lncrease of heart rate, the microprocessor controls dispensing apparatus to vary the dosage given to the patient.
.~
,:
.. : ,~ .
.` ' _5_ .
, ,:
'~'i',~ '' ' ~ , ~L IL 7 5 .~
:
Included in the apparatus .is a process :Eor measuring the R-R in-terval and for accumulating -the average of the R-R in-terval over a given period of -time, for example, an hour. The averaged R-R
intervals are compared with known standards to variably control the dispensation of medication to the patient.
Brief Summary of the Invention _ _ It is an object of this inven-tion to provide new and improved apparatus for rnonitoring and storing heart activity signals utilizing a data processor illustratively .in the form of a digital microprocessor.
It is a further objec-t of this invention to operate the data processor in a most ef:~icient manner to evaluate and store signals indicative oE the patient's heart signals.
; It is a rnore specific object of this invention to pro-vide new and irnproved apparatus for monitoring and storiny sig-nals indicative of a patient's heart activity, wherein the apparatus is embodied by a data processing apparatus that oper-ates in a first, relatively slow real time frame to sample the signals of the patient's heart and in a second, relatively fast computer time frame for processing and evaluating the sampled heart signals.
In accordance with these and o-ther objects of the in-vention, there is provided apparatus for monitoring and storing electrical signals indicative of a patient's heart activlty in-cluding apparatus for monitoring and storing electrical signals indicative of heart activity including a series of heartbeats, said apparatus comprising: (a) means for sampling a patient's heart activity to provide a sequence of sampled heart signals at a rate sufficient to provide a plurality of sampled heart sig-nals of one heartbeat and comparing one sampled heart signalwith a subsequent heart signal of said one heartbea-t to provide a heartbeat signal indicative of the occurrence of a valid peak ; of said one heartbeat, if said one sampled heart signal has a ~ predetermined amplitude relationship to said subsequent sampled ; heart signal; (b) memory means including a plurality of storage ,~ locations, said locations for storing corresponding heartbeat ~ signals, and (c) means responsive to the provision of said .
7S~
~ 6a -:.
heartbeat signal for evaluating a sequence of ~aid heartbeat signals as stored in said plurality o:E loca-tion~ to determine whether the patient '8 activity is rhythmic, and if so or pro-viding a maniEestation of rhythmi.c heart activity and if not, or providing a manifestation of disrhythmic heart activity.
.~ In an illustrative embodimen-t of this invention, there is pro-vided a sampling clock i~r providing a ,ampling clock ;
'',;
~,' ~, ... .
:, .
,,.~, ,`,:
.....
';
'~
1.~
'`"
;:' , : .
~7~ ~7~
signal to the sampling circui-t whereby the ~amples of ~he patient's heart activity are taken. A second computer clock provides computer clock signals to at least a portion of the data processor whereby the processing of the heart activity i5 effected in the relatively fast computer time frame.
In a further aspect of this invention, the data processor comprises a first portion or means that operates in response to the sample clock signal for evaluatiny the heart activity signals to determine the existence of a valid heart-beat. In an illustrative embodiment, the heart activity sig-nals are evaluated to determine segments thereof and thereafter to examine a series of such segments to determine whether a valid heartbeat has been monitored.
In a still further aspect of this invention, the data processor includes a further portion operating in the com-puter time frame ~or processing the detected heartbeat and in particular Eor determining the in-terval therebetween, and subsequently the heartbeat rate. The manifestations of the intervals between successive heartbeats and the rate o the heartbeat are stored in a further location of the memory.
Such stored data is evaluated to determine whether the heartbeat is occurring with a regular rhythm or, if not, is an anomaly.
If such an anomaly i5 detected or the patient has, through a manually operable switch, provided indication of an anomaly or a heart discomfort, the data processor transfers a series of the sampled heart signals to a still further storage loca-tion to be stored therein for subsequent read out and display.
Brief Descrlption of the Drawin~s_ These and other obJects and advantages of the present invention will become more apparent by re~erring to the following detailed description and accompanying drawings, in which:
FIGURES 1 and 2 show, respectively, histograms of the R-R in-terval and of the interval differences, over an extended period of time;
FIGURES 3A and B show, respectively, a high-level functional block diagram o the basic elements of the heart monitoring systeM in accordance with the teachings of this i.nvention, and a perspective view of the portable data acquisition unit incorporated into the sys~em o~ FIGURF 3A
; FIGURES 4A, B, C, D, and E are detailed circuit diagrams show-lng the elements of the system generally shown in FIGURE 3A;
FIGURE 5, on the second sheet of drawings, is a diagram of the storage structure areas of the RAM comprising a memory within the portable data acquisition system as shown in FIGURE 3A;
FIGURE 6 is a high-level diagram of the non-real tim~ program as stored within the ROM and as executed by the CPU of the system shown in FIGURE 3A;
PIGURE 7 shows the various service routines and the ~anner ln ` 2C which they are related to coordinate the real time tasks for the system of FIGURE 3A;
FICURES 8, 9, 10, and 11 illustrate the monitoring rou~ine as generally shown in FIGURE 6;
FIGURES 12 to 17 show the details oi' the MONITOR$SERVICE rout-ine as generally shown ln FIGURE 7, with FIGURES 13 to 17 being on the same sheet;
FIGURES 1~, B, C, and D illustrate, in graphical form, the wave shapes of various anomalies th~t may occur within the patient's ECG
si~nal and their timung; and ~ FICURES 19.~, B, and C illus~ratc the segments making up valid R-wave forms ~s detcctcd by the ~lO~ITORSSER~'ICE routinc as shown in FIGURES
12 to 17.
Description of the Preferred Embodiment Referring now to the drawings and in particular to FIGURE 3A, there is shown a heart monitoring system 10 adapted to be coupled by leads 22a, b, and c to a patient 20 to receive signals to be processed and in particular compac-ted, before storage in a random access memory (~M) 26 of a portable acqui-sition unit lZ. The heart monitoring system 10 is capable of monitoring a patient's heart for an ex~ended period of time, e.g., 3 hours and 20 minutes, while continuousl~ processing and in particular compacting data as received in real time for storage in a manner that facilitates the later playback and display by a display unit 30 of the data in a dense form that is readily discernible to the physician. In particular, the patient's ECG signals are continuously monitored to provide heart data in the nature of trends of the average, maximum, and minimum heart rates for consecutive intervals, e.g., 5 minutes, throughout the data acquisition. In addition, the system further stores data in a orm~ whereby histograms of the R-R interval difference and heart rate may be displayed.
In addition, the heart monitoring system is designed to detect certain arrhythmias of interest and upon detection, automati-cally stores for a limited period of time a segment of the ECG
signal indicative of the detected arrhythmia. After the acqui-sition period is over, the heart monitoring system 10 is assembled so that the portable acquisition unit 12 is coupled to its playback unit 30 to initiate a readout and display upon its analog chart recorder 36. The playback unit is divided into a first portion known as an adaptor 32 and a second por-tion including the recorder 36 and a chart edge printer 38.
As will be explained in detail later, the edge printer 38 com-prises an array of elements for printing a series of marks along the edge of the chart of the recorder 36 to provide an indication of the occurrence of certain events during the monitoring operation; for example, the occurrence of a heart anomaly as detected by the acquisition unit 12 would be noted by a mark that would be pl.aced upon an owtputted trend chart to desigllate that interval in whlch anomaly occurred. Furthcr, the patient 20, upon sens-ing heart pa;.n, presses a mark button 84, as shown in FIGURES 3~ and 4A, to cause the heart signals occurring during that interval to be i~entified by a mark provided by the chart edge printer 38. In addition, the printer 38 may provide marks to separate the various charts as are printed out by the re-corder 36.
The heart monitoring system is generally shown in FIGURE 3A where-in the ECG signals are applied by the leads 22a~ b, and c from electrodes attached to the patient 20, ViQ a diEferential preamplifier 18 to the port-;able acquisition unit 12 and in particullr to an A/D converter 16. '['he signals now in digital Eorm are applied to the central processor unit (CPU) 14~ The input of the A/D converter 16 is coupled via the differential ampli-Eier 18 to the connectors 22a and 22b. The difEerential amplifi~r 18 in-cludes an ECG preamplifier that buffers the ECG snap connectors 22a and 22b to reduce cable generated artifacts. The ECG preamplifier drives the differ-ential amplifier 18 with a passive ground system. The snap connector 22b is attached to a pre-gelled ECG electrode approximately located at site V5 of the patient's side, whereas the connector 22a is attached to a pre-gelled ECG
electrode approximately located at the sternum. These preamplifier connec-tions will produce a positive-going R-wave for most patients. The ground con-nector 22c is attached to a pre-gelled ECG electrode located on the left pectoral region. Though the illustrative embodiment shown in FIGURE 3A
externally monitors the patient's heart, it is contemplated within the teach-ings of this invention to connect the sensing electrodes directly to the patient's heart and transmit the detected heart signals from an internally implanted transmitter to an external receiver coupled suitably to the data acquisition unit; the contemplated transmitter and receiver may illustratively take the form of that disclosed in U. S. Patent 4,166,470 assigned to the assignee of this invention.
A clock signal, as derived from a sample clock 24, is applied to the CPU 14 to control the rate at which sample signals .
,~ ..,~"
7~
are derived ~rom the patient 20. It i.5 unclerstood that the CPU 14 has its own internal clock, as is wc311 known in the art, for controlling its internal operations as well as its inter-facing with the other elements of the unit 12. The CPU 14 is coupled by a data/instruction (I/D) bus 27 to each of a read only memory (ROM) 28 and to the RAM 26. The ROM 28 is adapted to store the instructions which the CPU 14 executes to detect or recognize the input ECG signals, to process these signals including compaction and to appropriately store the processed signal in designated areas of the R.AM 26; the programs or routines as stored in the ROM 28 will be explained generally with respect to FIGURES 6 and 7, and in detail with respect to FIGURES 8 to 17. The data as processed and compacted by the CPU 14 is stored in designated areas of the RAM 26 dependent upon the nature of the data, the areas of the RAM 26 in which data is stored are shown in FIGURE 5.
~ The playback unit 30 is optically coupled to an iso lating latch or playback adaptor 32 which acts as an isolating digital buffer to receive from the acquisition unit 12 infor-mation to be transmitted to and displayed upon the analogchart recorder 36 and the chart edge printer 38. Because of the optical isolation, the patient 20 may be connected to the ac~uisition unit 12 when the acquisition unit 12 is connected to the line powered playback unit 30 without fear that the patient's ECG signal will be affected by noise or that an elec-trical shock hazard will be affected by noise or that an electrical shock hazard will be presented to the patient 20.
As shown in FIGURE 3A, data is applied via a D~A converter 34 to the analog chart recorder 36 which may illustratively take the form of a pen recorder as manufactured by Astromed under their designation Model 102. The latch 32 is also coupled to an edge printer 38 as manufactured by Texas Instruments under their designation EPN 3300.
FIGURE 5 discloses a data structure or memory map illustrating the manner in which the various types of data are :~'7Si ~
-~12-stored in corresponding recJiong oE ~he R~M 26. As shown in FIGURE 5, the RAM 26 includes a first area 26a for receiving ECG data as continously monitored by the system 10 when dis-posed in its monltoring mode. In the monitoring mode, as will be explained in detail later, each QRS complex of the patient's ECG signal is detected and analyzed to determine whether it is valid, i.e., that it is not nolse, and upon occurrence of a valid QRS complex signal, the signa:L i5 processed and stored within the first area 26a. It is desired to retain a strip of the ECG signal if there is detected an arrhythmia which may occur after a desired portion of the signal has already been detected. To this end, the first area 26a of the R~M is operated as a pseudo-tape loop by storing each sample piece of data in successively lower RAM addresses until the lower limit of a section of the area 26a is reached. At that point, the storage point of address P is returned to the topmost storage location of that section and the next data is over-written upon the o]d data. The cycle is repeated continuously until an arrhythmia is detected at which time a pointer to the first/last data boundary is stored and further data storage is inhibited. After the storage is complete, the first/last data pointer or boundary is saved, in a location noted as STARTING POINT, or directing output of data therefrom. The area 26a of the RAM 26 is divided into a plurality, e.g., nine of buffer sections 26a-0 to 26a-8, each buffer section includ-ing a qiven number (e.g., 360) of consecutive locations, wherein data indicatinq samples of every fourth ECG signal are placed in ~equence as indicated above. When one buffer section has been filled, the address or pointer P to the area 26a is moved to designate the topmost location available within the next buffer section. In this manner, nine strips of the ECG signal may be recorded and stored within the RAM 26 to play out and reproduce, as will be explained, a visual display of the ECG signal at that time. Though only nine buffer sections are shown within the area 26a of the RAM 26, it is contemplated -13- ~7~ 3 that 40 or even more such sections could be incorporated within the area 26a limited only by the size of the deslred memory and its C09-t, and considerations of battèry drain.
In a further contemplated embodiment of this invention, a single circular buffer section could be used with the data stored therein replicated in-to permanent storage loca-tions of the RAM 26 upon the dete~tion of a heart anomaly.
The second area 26b is dedicated for storing data to be displayed in a histogram format. In particular, the area 26b is configured illustrative:ly as two arrays of 50 16-bit cells. A first of the 50-cell arrays is intended for storing an interval difference histogram ~ID~I), wherein each cell is 4 sample clocks, i.e., 16-2/3 ms. wide. As will be ;explained later, after the R-R interval has been calculated and the difference between successive interval~ obtained, that internal difference is divided by 4, the fractional part being disregarded. The result of the division process is used to point to the appropriate ID~I array cell within the first array of the area 26b and that cell is incremented to indicate the occurrence of a difference of that particular order. In an illustrative embodiment of this invention, each of 25 IDH cells is provided on the negative and positive sides of the center to handle differences ranging from 0 to 100 sample clocks, i.e., 0 to 416-2/3 ms. with all differences larger than 416-2/3 ignored. The second 50-cell array of the area 26b is intended for storing the rate histogram, wherein each cell is 5 beats per minute wide. As will be ex-plained later, after the R-R interval has been measured and the equivalent heart rate calculated, that rate is divided by 5, the fractional part being disregarded. The result of the - division process is used to point to the appropriate rate his-togram cell, and that cell is incremented to indicate the occurrence of that particular interval. The interval differ-ence histogram is primarily used to indicate rhythm instabili-ties, such as might be produced by atrial fluttcr, sick-sinus-syndrone, and premature contrac-tion, while -the rate his-togram indica-tes the distribution of intervals. ~y contrast, a trend plo-t indicates gross changes in intervals as will now be dis-cussed.
Area 26c of the RAM 26 provides a s-torage area for re-ceiving trend data including three sets of 40 ~-bit cells, each cell for storing one of the minimum and maximum of the patient's heart rate and the average of the heart rate as detected during tha~ interval, e.g., 5 minutes. Each set of cells corre~ponds to a -trend interval.
In addition, area 26c provides storage for data indi cating whether the mark button 84 was pressed or EC~ was stored during a trend sample interval. Typically, if the patient no-;tices some symptom, e.g., dizziness, fainting, or some otherdiscomfort indicative of a heart condition, he may push the mark pushbutton 84 as disposed upon his portable acquisition unit 12 and as shown more specifically in FIGURES 3B and 4B. Upon the actuation of the pushbutton 84, a specific bit pattern is stored in the cell corresponding to -the trend sample interval wherein pushbutton ~4 was pressed. I~ an ECG strip was saved in area 26c during a given trend sample interval, the bit pattern in the corresponding cell will be modified to indicate that fact. Upon playback, an indication is made upon the analog chart recorder 36 as to that interval in which the pushbutton 84 was depressed in the form of a mark identifying the time interval, whereby the reviewing physician may identify the time of button depression or ECG sample storage with the corresponding values of minimum, maximum, and average heartbeat rate.
Area 26d provides data storage to receive various variables including state indications and flags that are set during execution of the process.
Referring now to FIG~RES 4A, ~, C, and D, there is shown detailed circuit diagrams of -the heart monitoring appara-tus 10 as generally shown in FIGUR~ 3A. The data acquisition unit 12 is found principally in FIGURES 4~ and 4B, wherein there is shown the CPU 14 which may illustratively -l5- ~'7~
take the form of a central procosslng un:it manufactured by Intel under their designation 8085A. The CPU 14, in conjunction with address latch 44, re-ceives and transmits data via its address bus 46~ control bus 50, the data bus 48, and the connectors Jl and J2. Data is received from the A/D con-verter 16, as shown in F~GURF: 4C, and is transferred to and from the RAM 26 via the data bus 48, as shown in ~IGURE 4A. The RAM 26 is comprised of a plurality of memory elements as manufactured by l~larris under their designa-tion No. HM 6514. The data bus 48 is connected to the data transport ports DQl-4 of each of these elements. The ROM 28 is comprised of two memory ele-ments as manufactured by Intel under their designation 2716 and upon beingaddressed, instructions of the programs to be described are read out via their output ports 00-07 to be transmitted via the data bus 48 to khe CPU 14.
As shown in FIGURES 4A and B, addresses are applied via an address bus 46 to the elements of the RAM 26 and of the ROM 28 to address one of the elements and a selected location therein. The CPU 14 generates an initial set of addresses from its outputs AlO, 11, and 12 to be applied to a pair of chip or element decoders 40 and 42, illustratively taking the form of a decoder manu-factured by RCA under their designation 4028. The outputs of the chip de-coders 40 and 42 develop address signals whereby one of the chips or elements of the RAM 26 or ROM 28 is addressed at a time. The particular location with-in one of the elements of the RAM 26 or the ROM 28 to be addressed is selected by an address latch 44 whose inputs are taken from the ports ADE and AD 0-7 of the CPU 14 to provide output signals applied by the address bus 46 to each of the aforementioned elements to address a selected location therein.
Further command signals are developed from the IO/M to control whether data is to be transferred between the RAM 26 or whether data is to be transferred to the input/output (I/O) and in particular to be transferred via the data bus 48 from the A/D converter 16 (as shown in FIGURE 4C) or to ,~ .
1.6~
transfer data to the add.ressing latch 1~0 ~as shown in FIGURE
4D), which comprises a par-t of khe latch 32 (as shown in FIGURE
3).. The ports designated RD and WR control whether data is to be written onto or read out from the RAM 26. As shown in 5 FIGURE 4A, the CPU 14 includes a set o interrupt inputs that are used in a manner, as will be more fully explained, to sim-plify the programs that are required to implement the various processes and functions of recognition and storage of ECG data.
For example, the sample clock 24, as shown in de~ail in FIGURE
4C, applies its sample signal via conductor 80, conneckors P1 and Jl to the RST 7.5 interrupt of the CPU 14. The sample clock calls a SAMPLE$ECG$AND$DO$TIMING routine, whereby sam-ples of the ECG signal are taken and ~he R-wave o~ the QRS
complex is examined to determine whether a valid R-wave is 15; detected to set thereby an R$FLAG, as will be explained with : respect to FIGURES 12 to 17.
A further interrupt is made when a voltage detection circuit in the orm of a Schmitt trigyer 54, a part of the power supply 52, as shown in FIGURE 4A, senses that the battery voltage has fallen below a predetermined level. A battery 82, as shown in FIGURE 4C, is coupled via connectors Pl and Jl to the power supply 52 and illustratively comprise an 18-volt battery; when the Schmitt trigger 54 senses that the voltage of the battery 82 has fallen below 10 volts, an output is developed and applied to the TRAP interrupt of the C~U 14 to initiate a controlled transfer to a shutdown mode of opera- ;
`tion, as will be explained with respect to FIGURE 7, wherein only the logic addressing and processing circuitry and the chips of the RAM 26 remain energized, thereby to preserve the energy level of the battery 82. In particular, the Schmitt trigger 54 comprises an operational amplifier Ul9 that compares : the voltage output of the battery 82, normally 18 volts, with the regulated voltage 5SD as provided from the output 55 of the power supply 52, and if the battery voltage falls below a minimum, illustratively 10 volts, the operational amplifier 7 ~ ~t Ul9 provides a high-going output siynal via the NOR ga~e U8 to the TRAP interrupt of the CPU 14 to thereby initiate the LOW$-VOLTAGE$DETECTOR$SERVICE 604, as will be explained with respect to FIGURE 7.
The circuitry, as shown in FIGURE 4A, of the acquisi-tion unit 12 responds to such a low voltage condition in the Eollowing manner. First the A15, IO/M, and RD output terminals of the CPU 14 all go high, causing the NAND gate U5 to apply - a low-going output signal to a pulse-shaping circuit comprised of capacitor C16, diode CR5, and resistor R40. The shaped out-put is in turn applied to set a flip-floP circuit 57 comprised of two NOR gates, each designated by the notation U8. As seen in FIGURE 4A, the delayed output 56 of this flip-flop circuit 57 is applied to the power supply 52 via transistor Ql and : 15 ;also to an array of NAND gates U4 and U5. When transistor Ql - is turned on, a current is applied to a switching regulator U20 that causes power supply 52 to deenergize most elements of the system 10, as will be explained later. In this manner~
generally the power supply 52 removes energization from most of the elements of the system 10 while maintaining energization to the various elements of the RAM 26 and further, the array of NAND gates V4 and U5 are disabled to prevent the further : application of address signals from the chip decoders 40 and 42 to the RAM 26. In this way, the data previously stored in the elements of the RAM 26 will continue to be stored, and further, addresses and/or spurious signals that may be g~ner-ated by the CPU 14 and/or the chip decoders 40 and 42 cannot be applied after voltage shutdown to the RAM 26. Further, the output of the flip-flop 57 is applied to drive conductive the transistor Q2 of the power supply 52 whereby a positive-going signal is applied to the SD input of the switching xegulator circuit U20, which may illustratively take the form of that regulator manufactured by Silicon General under their designa-tion SG1524. In the normal mode of operation, the regulator U20 periodically energizes the base of the transistor Q3 via ... .
~17~
its outputs CA and CB at a rate to charge capacitor C14 -to a desired voltage in the order of +5 volts; the capacitor C14 is repeatedly recharged while tending to be discharged by the load via inductor Ll whereby a substantially constant, regu-lated ~5 volts is applied to its output terminal 55, alsodesignated ~5SD. In addition, the periodic voltayes are also applied by the primary winding of the transformer T2 to its output secondaries whereby ~8 volts are applied to energize elements of the circuit shown in FIW RE 4C. Linear regulator U20 provides at its output VR a ~5 regulated voltaye. As can be seen from an examination of FIGURES 4A, B, C, and D, most of the elements of the system lO are energized by the regulated +5SD voltage as derived from the output 55 of the power supply 52 while it is being operated in its normal, regulating mode.
Howevex, when the transistor Q2 is driven conductive upon the occurrence of a low voltage condition, an input signal is applied to the SD input thereby disposing the regulator U20 to the second, non-operative mode whereby the regulated ~5SD volt-age i5 removed from most of the e:Lements of the system 10 thereby reducing significantly the drain as applied upon the battery 82. During its shutdown mode of operation, a voltage of ~5 volts is only applied by the output terminal VR of the power supply 52 to the various elements of the RAM 26, the chip decoders 40 and 42, the NAND gates U4, V5, and U6, and the flip-flop 57. In particular, the normally applied output from the terminals CA and CB of the regulator U20 goes high to render the transistbr Q3 non-conductive, thereby disconnecting the voltage from the primary winding of the transformer T2 and the inductor Ll,and turning off the output voltage of ~8 derived from the secondary of the transformer T2 and the output derived from the terminal 55. However, as noted above, the regulator U20 continues to apply the -~5 voltage from its output VR to the above-noted elements.
The RS~ 6.5 interrupt of the CPU 14 is used to detect whether the preamplifier 18 is connected via connector J4 to ~ -19- ~7~
the portable acquisition unit 12, as shown in FIGURE 3. A5 illustrated in FIGURE 4C, the pins 1 and 2 oE the connector J4 are connected to the preamplifier connector P4 which has a short across pins 1 and 2 whereby a low or "0" signal is applied via the conductor 94 and connectors Pl and ~1 to the RST 6.5 interrupt of -the CPU 14. As will be explained with respect to FIGURE 7, in the absence of a connection to the ECG pre-amplifier 18, the system 10 is prevented from entering its monitor or calibration mode of operation.
In the course of either the calibration or monitor modes of operation, a switch 84, as shown in FIGURE 4C, may be depressed to apply a signal via conductor 86 and connectors Pl and Jl to the SID input of the CPU 14. In the monitoring mode, the depression of the switch 84 effects a storage of a flag identifying a relatively small interval during the entire monitoring period in which the patient sensed some symptom or felt some discomfort. In the calibration mode, depression of switch 84 causes the refractory period associated with sensing of the QRS to be increased. The SOD terminal of the CPU 14 drives via conductor 87 and connectors Jl and J2 the transistor Ql, as shown in FIGURE 4C, whereby the ECG LED 88 is energized. As will be explained, during the calibration modes a potentiometer R9 within the ECG amplifier 19, as shown in FIGURE 4C, is adjusted to set the gain of the ampli-fier 19 to an appropriate level dependent upon the amplitudeof the patient's ECG signal. The LED 88 is energized in a manner to indicate when the potentiometer R9 has been appro-priately adjusted. A start button 95, as shown in FIGURE 4C, is depressed to initiate the operation of the system 10 whereby a low signal is applied to the RESET IN input of the CPU 14. In particular, the start button 96 is depressed to apply a low-going signal via the terminals Pl and Jl to a NAND gate U5, whose output is in turn applied to reset the flip-flop 57. Upon being reset, the flip-flop 57 applies a low signal to deenergize the transistor Q2, whereby the high : ', ' '' ' . . .
level applied to the SD lnput o~ the switching regulator U20 is removed, per-mitting regulator U20 to return to the normally energlzed Mode. In addition, the CPU 14 develops an output reset signal that is applied to reset and clear the addressing latch 140, as shown in FIGURE 4D.
As shown in PIGURE 4A, a computer clock 15 provides a 1.843 ~Iz clock signal that times the execution of the program by the CPU 14 as well as the various other data transfer functions controlled thereby. As will be explained later, the functions of the CPU 14 including various data transfer functions and calculations are carried out under the control and within the time frame of the computer clock 15, whereas many of the data ga~hering func-tions, including the sampling oE the patient's EC'G signals are carried out in real time under the control of the sample clock 24.
As shown in FIGURE 4C, the input ECG signals are applied to the differential ECG preamplifier 18 of a design familiar to those skilled in the art. The output of preamplifier 18 is fed to the ECG amplifier 19 which com~
prises operational amplifiers 90 and 92 that are connected in series with each other. As mentioned above, the variable potentiometer R9 controls the gain of the ECG amplifier l9. The output of ECG amplifier l9 is applied to the input Ii of the A/D converter 16. ~he converted digital signal is applied from the outputs B0-7 of the A/D converter 16 via the data bus 48 to be selectively stored under the control of the CPIJ unit 14 within the ele-ments of the RAM 26, as shown in FIGURES 4A and 4B.
FIGURES 4D and 4E show the isolating latch 32 and the D/A converter 34, generally shown in FIGURE 3, as coupled to the analog char~ recorder 36 and the chart edge printer 38. The isolating latch 32 is comprised of the addressing latch 140, a 16-channel optical isolator 141, and a DC-DC con-verter 139. The data to be printed or displayed is applied via the data bus 48 to the inputs D0 to D7 of the addressing latch 140. The latch 140 deve-lops a first set of digital outputs PB0 to PB7 that are applied via the 16--channel optical isolater 141, as :
~ ~ 7 5~
shown in FIGURE 4D, and the D/A converter 34, as shown in FIGURE 4E, whereby the analog recorcler 36 is driven. The latch 140 develops a second set of outputs PA0 to P~7 that are applied to the 7-dot chart print:er 38. In particular, the outputs of the latch 140 are applied to an array of dual channel, optical isolators U4 to Ul], as shown in FIGURE 4D.
Isolators U4 to Ull are provided to isolate the analog chart recorder 36 and the char~ edge print:er 38, which may be powered by a conventional ~C outlet, from the data acquisition unit 12 to insure that signals, including the energizing voltage as would be picked up by the recorder 36 and printer 38, will not be applied to either distort the ECG signals as derived from the patient 20 or present a shock hazard to the patient 20.
The isolated output ~ignals from the optical isolators corre-spondi.ng to the outputs PAl to PA7 and PB0 to PB7 are appl.iedvia connector~ P4 to the D/A converter 34, and to a set of drive transistors Ql to Q8, respectively. As shown in more detail in FIGURE 4E, the collectors of each of the drive tran-sistors Ql to Q8 are connected to the inputs of the chart print-er connector 35. FIGURE 4E does not explicitly show thechart edge printer 38, but it is understood that an array of printing elements in the form of heater resistors are incor-porated into the analog chart recorder 36 and are energized to selectively print out a mark or marks to highlight the.
various graphs or presentations of data made thereby. In par-ticular, the analog chart recorder 36 is capable of making a presentation indicative of A R-R interval histogram in a manner similar to that shown in FIGURE 1, an interval differ-ence histogram similar to that shown in FIGURE 2, and a trend sample showing for a series of consecutive trend sample inter-vals, e . g ., 5 minutes, the minimum/maximum heart~eat rates.
In the course of the presentation by the analog chart recorder 36, the chart printer 38 will provide a series of marks on the same paper to separate these various graphs and, with respect to the trend sample graph, will provide a series of different marks to indicate the occurrence of various events in a trend sample. For example, a triple mark above a trend sample -22- '~ 7~
indicates that the system has detected an anomaly, as will be described :in detail later. I~ the patient 20 senses distress possibly related to his heart activity and in response thereto depresses the mark button 84, the chart edge printer 38 is energized to place a double mark adjacent that trend sample.
If excessive noi.se is imposed upon the EGG signal as derived from the patient 20, the occurrence of that noise will be indicated by the chart edge printer 38 by forming a single mark above the corresponding trend sample. The connector 35 applies via leads to energize the heat resisting elements (not shown) to form the noted marks.
As indicated above, the addressing latch 140 applies a series o~ outpu-ts PB0 to PB7 via ~le optical isolators U8 to Ull to the D/A converter 34, which provides an output signal to its Io output to an operational amplifier U2. In turn, the operational amplifier U2 output is applied to the signal input of the chart recorder 36, whereby its pen is moved to reflect the input analog signal. The circuit as shown in FIG~RE 4E
provides means in the form of the potentiometer R36 whereby an offset may be provided to the signal to be applied to the analog chart recorder 36.
As will be explained later in de~ail, the particular mode of operation in which the system 10 is disposed is depend-ent upon which of the elements of the system are connected to the data acquisition unit 12, as shown in FIGURE 3A. For example, the system is operative in either a playback mode or a calibrati.on mode i~ the playback unit 30 is coupled to the portable acquisition unit 12. As shown in FIGURE 4D, the addressing latch 140 includes outputs PCl and PC0 that are set, respectively, high and low by the signals imposed upon the outputs PC5 and PC4. If the connector P3 is in fact coupled to the connector J3, as shown in FIGURE 4C, the addressing latch 140 may be accessed to determine the signals imposed upon terminals PCl and PC0 to thereby set the system 10 to enter either its calibration or playback mode of operation.
75 ~
In addition, inputs are provided from khe All and Al2 out-puts of the CPU 14, as shown in FIGURE ~A, to the Al and A0 inputs of the addressing latch 140 to control whether the particular signal as applied via the data bus 48 is to be S applied to the chart recorder 36 from its outputs PB0 to PB7 or to the chart edge printer 38 from the outputs PAl to PA7.
Referring now to FIGURE 6, there is shown a h.igh-level flow diagram of the method in which the heart data moni-tor of this invention operates to record and compact heart data and to playback the stored data. in a form that intelligi-bly informs the physician of the patient's heart condition.
Initially, in step 200, the operator depresses the start/reset button 96 upon the control panel of -the acquisition unit 12 as shown in FIGURE 3B. Thereafter, in step 202, the interrupts lS to the CPU 14 are disabled. As explained above, the CPU 14 has a variety of interrupt inputs which permit the CPU 14 to take data from different areas of the ROM 28. As will be explained with respect to FIGURE 7, the interrupt permits a hardware mechanization of various processes to simplify the software and to effect a saving in time of execution.
Initially, the~e CPU interrupts are disabled. The interrupts are enabled by a series of flags that are disposed within an interrupt array or register within the CPU 14 that permit selected of the CPU's interrupts to be used while disabling the remainder. Initially, each of the CPU's interrupts are disabled and thereafter an initialization process enables selected of the CPU's interrupts by applying flags to the corresponding areas of the interrupt array. As a further part of the initialization, signals are applied by the CPU 14 to set the isolating latch 32, permitting data flow to and from the analog chart recorder 36 and the chart edge printer 38, and to sense whether the playback unit 30 is coupled to the acquisition unit 12. Thereafter, the select step 204 i~
executed whereby one of the following operating modes is selected: playback (PBKM), calibration (CALIBM~, and monitoring .
` ~` `` -2~ 7~
(MNTRM). sasically~ step 204 looks at the system configura-tion in terms o~ which elements are connected to the acquisi-tion unit 12 to determine in which mode the system 10 may be operated. For example, I~ only the playback unit 30 is coupled to the acquisition unit 12, then step 204 trans~ers the pro~ram to the playback mode by step 300. However, if the playback unit 30 is disconnected from the acquisition unit 12 and the preamplifier 18, and in particular its connector J4, a~ shown in FIGURE 4C, is coupled to the portable acqui~
sition unit 12, the system 10 transfers to the moni-toring mode 500 via the initializing step 400. In particular, the connector J4 interconnecting the preampli~ier 18 and the acquisition UTIit 12 has two pins connected together, whereby the RST 6.5 input to the CPU is shorted or rendered -to its lowest state, so that an input state is stored in a register of the CPU 14, to be accessed during the select step 204.
Similarly, the coupling of the acquisition unit 12 to the playback unit 3n and in particular to the isolating latch 32 is made via the input/output port of the CPU 14 which responds if the isolating latch 32 is coupled to the CPU 14.
Be~ore entering into the monitoring mode 500, it is necessary to check PERMIT$FLAG indicating that the system had been calibrated by the calibration mode 206. Otherwise if ~ -the PERMIT$FLAG is not sensed, the system cannot enter the monitoring mode 500. The MCLEAR routine 400 resets PERMIT$~LAG
after directing the process to monitoring mode 500 to prevent reentry into the monitoring mode 500 unless the calibration mode 206 has been rerun to set PERMIT$FLAG. In order to enter the calibration mode 206, it is necessary to detect that the data acquisition unit 12 is connected to both the p~eampli~ier 18 by detecting the shorted pins of its connector J4, as well as to the isolating latch 32. ~n the other hand, i the data acquisition unit 12 is not coupled to any other device, the system exits immediately to the standby mode 208.
In the calibration mode 206, the CALIBM (calibration mode controller) program is executed to help the operator - 25 ~
adjust -the system to accept different a~nplitudes of heart sig-nals and set difEeren-t refractory periods as are needed to pro-perly de-tect the QRS complexes of a patient. In connection with the amplitude of the patient's R-wave, these amplitudes may vary as much as 20:1 within a normal patient popula-tion. Thus, to prevent saturation of the A/D converter 16 and to permit it to operate within a ran~e o~ 30 to 50% of its total capability, it is necessary to set the gain of the operational amplifier 90 (see FIGURE 4C) of the EGC amplifier l9 until the normal ampli-tude of the R-wave is of a height to permit a 2:1 increase of the ECG signal amplitude without reaching the upper or lower count limits of the A/D converter 16. In this mode, the output of the preamplifier 18 is continuously monitored via A/D conver-ter 16, to determine whether the deviation from baseline peak, whether negative or positive, exceeds 40 A/D converter units or counts. If the peak input is below this limit, the CALIBM pro-gram causes the ECG LED 88, as shown in FIGUR~ 4C, to be left unenergized. If the peak amplitudes result in peak deviations from baseline that exceed a second limit corresponding to 60 units of the A/D converter 16, then the LED 88 is continuously lit. If the peak deviation from baseline measured by the A/D
converter 16 is between 40 and 60 units, the LED 88 will flash each time a QRS complex is detected. Normally, it is desired to set the gain of amplifier 90 such that the output of the A/D
converter 16 around the baseline deviates about -~ 50 counts throughout the cardiac cycle. To this end, the variable gain of the input amplifier 90 within the A/D converter 16 is adjusted, via R9, so that the LED 88 flashes on each QRS. In addition, the calibration mode 206 adjusts the refractory period, i.e., the expected period between the R and T waves of the patient's heart signal, during which EC~ signals applied to the da-ta ac-quisition unit 12 will be inputted but not processed to detect QRS complexes. To set the refractory period, the mark button ~4 is depressed, whereby a buzz or -26- ~ J:~
high :Erequency s.ignal is imparted to the ECG chart for a period as long as the mark button 84 is depressed. Such a signal is developed by the analog chart recorder 30 and increases in duration every 4 seconds while the operator holds mark button 84 down. The operator holds mark button 84 down until the refractory period indicated by the buzz signal extends to the end of the T wave. As will be explained later, the refractory period is com-puted in accordance with a SET.~REFRACTORY$TIME subroutine dependent upon the length of the last occurring R-R interval and a constant that is changed only during adjustment of the refractory period, i.e., the corresponding count of the refractory period counter in tuLn sets -the refractory ca].ibra-;tion constant which is used in the calculation of the refractory period upon successive occurrences of the R-R interval.
After calibration, as indicated by the setting of the PERMIT~FLAG, and the detection that the data acquisition unit 12 is coupled to the pre-amplifier 18, the select step 204 branches to the clear/initiali~ing routine 400, executing the MCLEAR program wherein the storage areas as shown in FIGURE 5 are cleared for receiving the refractory constants in preparation to entering the monitoring mode 500. The monitoring mode 500 will be explained later with respect to FIGURES 8, 9, 10, and ll, and is controlled by the MNTRM program to detect successive QRS complexes, to determine whether such complexes are valid or not, to characterize valid QRS complexes, to measure R-R intervals, and to control the processing of such data and the subsequent storage of the processed data within the RAM 26. ~he R-R interval is com-puted and the corresponding rate is obtained before storage within area 26c of the RAM 26, as shown in FIGURE 5. Next, the differences between the suc-cessively calculated R-R intervals are calculated to increment one of the bins within area 26b of the RAM 26. Further, -there is included a classi:Eica-tion subroutine to sense abnormal or arrhythmic heart ~, .
, .
~7~
-27~
signals; in particular it is determined whether the rate is above 120 or below ~0 beats per minute (~PM) or whether there has been a skipped or early beat. If so, the SAVE$FI~G is set and a trigger signal is generated to store the current set or strip of ECG rhythm signals within one of the nine buffers within area 26a of the RAM 26. Shortly after the S~VE$FLAG is set, the data in the current buffer is frozen and the pointer to the address of the s-toraye buffer moves to the next buffer if available within the area 26a.
The monitoring routine 500 controls monitor mode operations; it does not include routines for performing xeal time tasks such as timing intervals, R-wave detections, and calculating the R-R interval. The real time routines are separate, as shown generally in FIGURE 6, in order to simplify the total software requirement of this system. Briefly, real time tasks, including the R-wave detection routine, are entered once for each cycle of the sample clock 24. The moni-toring routine 500 is executed as long as a RUN$FLAG remains true. Any of the following events can set RUN$FLAG false, thus terminatiny the monitor mode: first, the battery for energizing the system 10 may fall below a predetermined level;
second, area 26c for receiving -the trend data may be filled, i.e., no more data may be stored therein; and third, the con-nector J4 of the preamplifier 18 may be disconnected. After RUN$FLAG is set false, MNTRM completes final housekeeping tasks in block 500 and transfers control to step 208 wherein the standby mode controller deenergizes all system components except the RAM 26. In particular, upon the completion of each of the steps in routines 300, 206, or 500, the process transfers to the standby mode 208 wherein the interrupts of the CPU 14 are disabled and the data as stored within the RAM 26 is protected from being read out or written upon. Further, the power supply 52 is shut down to all parts of the s~stem 10 with the exception of the power that is supplied to the RAM 26, thereby insuring the data as stored therein is safely continued to be stored. In this Eashion, the dxain as placed upon the system's battery 82 is minlmized to insure maximum battery life.
Further, the select step 204 may directly transfer S the process into the standby mode 2()8 if -the terminal of the preamplifier 18 as well as the playback unit 80 are discon-nected from the acquisition unit 12.
Further, as shown generally in FIGURE 6, a real time interface program 600 is provided that organizes the various tasks required to be performed in real time, for example, the detection of the R-wave, as a service to the mode controller programs that may be executed in computer time. These real time service routines may detect certain conditions which place the system 10 directly into the standby mode 208.
Referring now to FIGURE 7, the real time interface proyrarn 600 is shown in greater detail~ Step 602 detects whether the output of the system battery 82 is low and, if so, actuates the CPU 14 to enter a LOW$VOLTAGE$DETECTOR$SERVICE or routine 604, whereby the process is transferred to the standby mode 208. As shown in FIGURE 4A, there is included a Schmitt trigger circuit 54 that is coupled to sense the output of the battery 82. In response to detection of its voltage below a predetermined le~el, e.g., 10 volts, the circuit 54 applies a high or +5 signal to the TRAP input of the CPU 14 causing the CPU 14 to enter the LOW$VOLTAGE$DETECTOR$SERVICE 604. In this service 604, a determination is first made of whether the process is in the monitoring mode 500 and, if so, sets the RUN$FLAG false. As will be explained in detail later with respect to FIGURE 8, the monitoring mode 500 responds to the setting of the RUN$FLAG false to insure that the ECG data is completely recorded, that the calculations of the currént R-R interval is completed, and that the average of the then obtained ~-R interval~is calculated and stored in an appro-priate location within the RAM 26. Thereafter, the RAM 26 is shut down in a ma~ner so as not to lose any stored data and , ~.~7~
to maintain its energization, as will be explained later. The Schmitt circuit 54 actuates the TRAP interrupts of the CPU 14 in this manner to effect an interrupt of the program to its standby mode 208 in order to reduce the programming that would otherwise be required. Step 606 senses the absence o~
the ECG preamplifier 18 and in particular that terminal J4 associated with the preamplifier 18 is disconnected, i.e., the shorted pins are removed from the RST 6.5 interrupt of the CPU 14, and the RST 6.5 interrupt goes to +5 volts, whereby the CPU 14 initiates a PRE-AMP$STATUS$SERVICE 608 wherein the process may be transferred to the standby mode 208. In par-ticular, if the system is in the monitoring mode 500, the ser-vice 608 will force the system to loop until the preamplifier 18 is reconnected to the acquisition unit 12 or the mark button 15 ;84 is pushed. When the mark button 84 is pushed, the RUN$FLAG
is set false, causing MNTRM to put the system into its standby mode 208. While the system is looping, no further data is stored within the R~M 26 or processed to detect QRS complexes.
Further, when the mark button 84 is pushed, the average of the R-R signals received to that point in time is calculated and the pointers stored in various other locations of RAM 26 are reset. If the process is in its calibrate mode 206 of opera-tion, the system transfers directly to the standby made of operation 208 upon the sensing that the preamplifier of the ~CG 18 is disconnected.
Though but a single mark button 84 is shown in the described specific embodiment of this invention, it is con-templated that a series of such buttons could be incorporated into this system, whereby the patient could more specifically designate the type of sensation that is being felt as to a particular symptom, body function, or activity. In addition, it is contemplated that an accelerometer type device as would be attached to the patient's body could be substituted for the mark button 84 and upon rapid motion of the patient's body, indicative of a high rate of body activity, that switch .~ 7~
would be closed whereby the patient's ECG s:ignal would be recorded for a given period of time.
As shown in FIGURES 4A and C, the sample clock 24 provides a 240 Hz sample clock signal to the RST 7.5 interrupt input of the CPU 14. The sample clock causes the CPU 14 to effect a CRYSTAL$CLOCK SERVICE 612 whereby the appropriate mode service routine is set, as shown in FIGURE 7. In par-ticular, the service 612 checks the current mode of operation, i.e., determines which of the modes 300, 206, or 500 is in operation and,dependent upon the current mode, selects one of the service routines 614, 616, 618, 620, or 622 to execute.
In particular, the service 612 examines XCMODE, a mode status variable assigned to a specified location within the RAM 26, to determine whether its value is 0, 1, ~, 3, or 4, corre-sponding to the service 614, 616, 618, 620/ or 622 that mustbe selected. The services 614, 616, 618, 620, and 622 are carried out in real time and act as an interEace between the input signals which are received in real time and the further operations and calculations that are carried out by the corre-sponding mode controllers in computer time under the controlof the clock 15 coupled to the CPU 14.
A CALIBRATION$SERVICE 6i4 performs in real time the basic system timing necessary to the calibration mode controller (CALIBM) 206. In particular, the service 614 responds to the sample clock to repetitively call the R-wave detecting sub-routine whereby the QRS complex of the ECG signal is detected and its amplitude provided. The obtained ECG peak signals are saved and passed to the calibration mode controller (CALIBM) 206 that operates in response to the computer clock 15 to determine whether the QRS complex amplitudes are accept-able. Further, the CALIBRATION$SERVICE 614 also applies the ECG signal and the "buzz" signal as needed to the analog chart recorder 36 to facilitate refractory adjustment as explained above.
The MONITOR$SERVICE 616 acts as a real time-interface for the monitoring mode 500, performing basic timing functions, .. .
~7~
calling the R-wave detçctiny routine, and ef~ecting the storage of every fourth ECG byte, i.e., its corresponding aMplitude, into one o~ the nine rotating buffers formed within the area 26a of the RAM 26. I~ during the course of the monitoring mode 500, a flag is set by MNTRM indicating the detection of an arrhythmic signal, the current bufer of the area 26a is saved and the MONITOR.~SERVICE 616 develops a pointer to the next buffer, if available, within the area 26a.
Basically, the DATA$CHART$SERVICE 618 provides timing for the various data charts whereby data is output from the RAM 26 at a rate that corresponds to the incremental advance of the paper chart as driven by the recorder 36. For example, each cell of the trend data indicative o~ the average ~inimum and maximum R-R intervals is applied to the chart recorder 36 at a rate that one cell will be displayed per millimeter advance of the paper chart. In this regard, it is noted that the paper chart is advanced one millimeter per 40 ms. To produce such timing, the service 618 is responsive to the output of the sample clock 24 to produce a drive clock to the recorder 36. It is noted that the sample clock may not be simply divided to obtain the desired 40 ms. drive signal but rather a timing subroutine is provided to respond to 10, 10, ~, 10, 9 clock signals to produce corresponding drive advance signals to the recorder 36. The corresponding 48 clock signals occur- .
ring over a timing of 200 ms. are precisely equivalent to the occurrence of five 40 ms. intervals. The fact that each drive advance signal is slightly in error does not affect the overall accuracy of the chart provided by the recorder 36.
The DATA$CH~RT$SERVICE 618 operates in real time to effect a playback of the trend and histogram data stored in the R~M 26 upon the analog chart recorder 36 and the chart edge printer 38. In addition r the service 618 provides a 60 Hz square wave to the analog chart recorder 34 to provide marks between the graphs displayed upon the recorder 34. For exam-3S ple, there is a ~arked interval between the trend chart and _ 3~ 7~
the histogram chart to indicate clearly to the physician a divi-sion theretween.
The posi-tive ancl negative SLOPE~PLAYBACK S¢RVICES 620 and 622 respond, respectively, to po~itive-going and negative-going slopes of the input-ted ECG siqnal to interpolate between ECG points to provide a series of straight lines between two ad-jacent points to produce a smooth-looking curve on the chart recorder 36. A series of straight line segments each 16.67 ms.
long are used to reproduce an essent.ially smooth appearing curve between the two points. Realizing that the data acq~i~ition unit 12 is a portable unit and comprises a RAM 26 that has a limited storage capacity, it is desirable to store less than each sampJ.e of the patient's ECG signals in order to lncrease the length of time for which the monitoring ~ystem 10 may be used. However, upon playback wherein the stored data within khe RAM 26 is read out, it is necessary to pxovide a smooth appear-ing curve.
The monitoring mode 500, as generally shown and des-cribed with respect to FIGURE 6, is more fully shown in FIGURE 8. The select step 204 transfers control to MNTRM 502, the entry point label for the monitor mode controller 500 via the MCLEAR program 400. Control then passes to step 504 to implement a delay for warm-up and to store selected variables within the area 26d of the RAM 26. For example~ it is neces sary to set the pointer to designate an initial buffer loca-tion in the area 26a, in the trend sample area 26c, and in the histogram area 26b. Further, all storage locations in the minimum rate location of the trend data area 26c are set to a maximum value to sirnplify the steps of the programming required to determine the subsequent minimum heartbeat rate~ Further, a count is stored to be counted down by the subsequent occurrences of the sample clock and upon counting down to zero, that corresponding E~G
:
~ - _33~ '7S~
sample is stored within the designatecl loca~ion of area ~6a.
A variable named XCMODE, located in RAM ~ , is set to "1" to indicate to block 612 that the system is in monitor mode.
Thus the MONITOR$SERVICE routine 616 will be called to pro-vide the monitor mode controller with appropriate real -tirne services, such as timing and QRS detection, on each positive-going transition of the sample clock. A rount to determine the length of the trend interval in terms of a selected num-ber of sample clock signals is provided to be counted down upon the occurrence o~ each clock sample to determine at the "0" count a five-minute interval, for example. In addition, a lock out time is stored to provide a delay before a flag can be set by MNTRM to effect the permanent storage of data within a buffer of the area 26a.
15 ; After storage of these and other variables, the process moves through loop entry label 506 to the decision step 508, wh:ich determines whether the RUN$FLAG h-as been set true or false. As indicated above, the RUN$FLAG is set false if the battery voltage is determined to be low, the connector J4 of the ECG amplifier 18 is disconnected, the trend storage area 26c, or the histogram storage section 26b is filled, or the pointer to designate the buffer within area 26a indicates that all buffers are already full. If the RUN$FL~G is set false, the program moves through step 520 wherein the data O
in the current trend sample or interval is calcula-ted to pro-vide an average based upon the previously received R-R inter-vals. Thereafter the process is transferred to the standby mode controller 208 where commands are given to the power supply to deenergize all elements of the system except the 30 RAM 26 and associated chip select logic to continue the stor-age of the previously recorded data at reduced battery drain.
If on the other hand in step 508, the RUN$FhAG is set true, i.e., the system is in a functional condition to receive, process, and store FCG signals, the process moves to step 510 to check whether the mark button 84 has been -3~ 7~
pressed, and if pressed, step 512 stores an event marker in an auxiliary history array wi-thin the RAM 26 indicative o~
which sample or interval in whlch the mark bu-tton 84 was pressed. Thereafter, after step 512 or if the decision block 510 indicates that the mark button was not pressed, the process moves to step 514 to determine whether the R$FLAG was set true by th~ execution of the R-wave sensing portion of the MO~ITOR$-SERVICE routine, as will be described with respect to FIGURE 16. If yes, the process moves to routine 700 as will be d~esæribed below in detail with respect to FIGURE 10. In rout~ 700, the data secured by the execution of the MONIT~R$-SERVICE routine 616, as shown in FIGURE 7 and in particular the R-wave sensing routlne called thereby, is used to reset the R$PLAG, to process the R$WAVE$TYPE data indicative of the presence of con-taminating noise as stored within a designated area of the RAM 26 and to operate on the R-R interval stored within one of the buEfers of RAM 26. After either the routine 700 has been executed or decision step 714 has indicated the R$FLAG to be set false, the process moves to step 518, wherein the EL~PSED$TIME within a trend sample interval is compared with respect to that value END$0F$TSI as stored within area 26d to determine whether the trend sample interval is over, e.g., whether 5 minutes has expired. ELAPSED$TIME is stored within a counter formed within area 26d of the RAM 26 and is incremented upon the occurrence of the sample clock. ~.f the interval is over, i.e., yes is indicated by step 518, a routine 800, as will be explained with respect to FIGURE 9, summarizes the data stored in the completed trend sample inter-val to determine the average R-R interval and therefore the average heartbeat rate and thereafter directs the storage of the R-R interval data to the next location or cell within area 26b. After the decision step 518 has indicated that the trend sample interval has not expired or the completion of the routine 800, the process moves to step 516 wherein the process is halted until the next sample clock occurs and causes execution o~ the MONITOR$SERVICE routine which inputs and processes the next piece of the ECG da-ta as derived from the patient. Thereafter, the process compLetes its loop, reentering at label 506 to examine and process the next piece of FCG data.
The summarizing routine 800, as generally shown in FIGURE 8, ls more fully shown with respect to FIGURE 9 wherein the routine 800 is entered via the :Label 804 to initiate the summarizing process. More specifically, in step 806, the sum of R-R intervals within a single trend sample interval as stored within a storage location of the area 26d i5 divided by a count indicative of the number of R-R intervals sensed during a single trend sample interval. Thereafter, the average interval is inverted to provide the average rate of the patient's heart-beat during the trend sample interval. Next, in step 808, thepointer TSI$PTR is incremented by"l" to cause the R-R inter-val data or the next trend sample interval to be stored in the next cell or bin of the area 26c. Thereafter, in step 810, the current pointer TSI$PTR is compared with an indication of the maximum capacity of the area 26c and i~ in excess of the maximum capacity, the RUN$FLAG is set Ealse in step 812 whereby, as explained above with respect to FIGURE 8, step 508 transfers the process via step 520 to the standby mode controller 208.
If, as determined by step 810, there is further storage avail-able in area 26c or the RUN$FLAG has been set false by step812, step 814 clears the counters as formed within area 26d of the RAM 26 and used to count the number of in-tervals and to sum the intervals occurring during the new current trend sample interval. Thereafter in step 816, the end time indica-tor of-the current trend sample interval, END$0F$TSI, is reset to indicate the next end of trend sample interval by adding 300 seconds to the present value of the ELAPSED$TIME counter.
Thereafter, step 818 returns the process to the monitoring routine MNTRM as shown in FIGURE 8.
The processing and storing of the R-R data, as generally shown in routine 700 of FIGURE 8, is shown in greater .
..
S~
detail in FIGURE 10. The routine enters via label 704, as shown in FIGURE 10, to process and store data pertaining to the R-R interval associated with the QRS complex recently detected by the MONITOR$SERVICE rou-tine 616. In block 706, R$FLAG is set false to acknowledge cletection of a QRS com-plex by MONITOR$SERVICE 616. In adclition, block 706 obtains the variable R$WAVE$TYPE, indicative of whether the detected QRS complex is contaminated with noise, and a RR$INTERVAL, indicative of the measured R-R interval. Next, the value of RR$INTERVAL is placed into that location of the area 26d known as NEW$RR. Thereafter, the value of the CoMBo$RR is set equal to the sum of CURRENT$RR plu8 NEW$RR, thereby sum-ming the two most recently recorded values of the R-R intervals.
As will be explained later in detail, the values of NEW$RR corresponding to the most recently calculated R-R inter-val and of COM80$RR are used to determine whether to save a strip or set o~ the patient's ECG signal corresponding to detection of an anomaly, as will be explained with respect to FIGURE ll. It is necessary to classify R-wave data so the intervals associated with valid R-wave signals are processed while noise contaminated signals are ignored. In addition, in-tervals following a premature beat should be treated in a different manner than intervals occurring in a regular rhythm.
As shown in FIGURE 10, there is provided step 708 that evalu-ates a variable R$WAVE$TYPE. The strategy for chan~ing thevalue of R$WAVE$TYPE, in conjunction with block 708, provides the means for classifying each detected QRS complex. For purposes of illustration, assume that the QRS complexes are not contaminated by noise and that the system has just been turned on, i.e., R$WAVE$TYPE is setto "4". Consequently, when the very first QRS is detected, block 708 passes control to step 728, which does not use any R-R intervals information because that information ismeaningless when no prior interval has been detected. Since the interval associated with the next QRS
complex will have meaning, step 728 sets R$WAVE$TYPE to "3".
.75~
Consequently, the next uncontaminatecl complex will be pro-cessed by step 72~, wherein the de-tection of the first uncon-taminated QRS complex is used to initialize the system to store the subsequent uncontaminated signals. In ~tep 724, 5 the serial locations wherein the most recent values of the R R interval, namely NEW$RR, CURRENT$RR, PRIOR.~RR, and PRE$PRIOR~RR are shifted to place the most recent value of the R-R interval in the NEW$RR RAM location. Thereafter, the SET$REFRACTORY$TIME program is called to set the refrac-10 tory period as a function of the most recently detected inter-val between QRS complexes. Thercafter, the R$WAVE$TYPE is set to "2" in order to process the next QRS complex which will be considered to be a normal, uncontamina-ted QRS signal.
A~ter execution of step 724, the program 700 returns via step 15 726 to step 518 of the monitoriny program 500.
Upon the occurrence of detection of the next QRS
complex, as indicated by the se-tting of the R~FLAG signal, the process returns to the subroutine 700 wherein, since R$WAVE$TYPE has been set equal to "2", step 708 directs the 20 program to step 722 wherein an acceptable QRS complex is stored as a regular rhythm or premature signal. The SET$-REFR~CTORY$TIME subroutine is executed for setting the refractory time as a function of the R-R interval, and there-after the UPDATE$DELTA subroutine is called to calculate and 25 store the difference between successive R-R intervals in the delta or difference histogram in area 26b of the R~M 26.
Thereafter, a CLASSIFY$AND$STORE subroutine, as shown in FIGURE 11, is executed to determine whether the detected, un-contaminated QRS is part of a regular rhythm or is a premature 30 beat. If part of a regular rhythm, the R$WAVE$TYPE is left at "2", whereas if the QRS complex occurs early or prematurely, the R$WAVE$TYPE is set equal to "1". The regular rhythm and premature beats w:ill be appropriately processed and stored, as will be explained in conjunction with FIGURE 11. Thereafter, 35 the various locations for receiving and storing the R-R intervals -3~ 75i~ ~
are updated with the most recent value of the R-R interval being stored in -the NEW$RR location. After completion of step 722, the subroutine 700 e~its via step 726 to step 518 of the monitoring program 500.
Upon the detection of the next QRS complex after 5 .the setting of the R$WAVE$TYPE equal to "1", step 70~,upon sensing the "1" state,transfers control to step 720 wherein the QRS complex that has been preceded by a premature beat is processed. Such a beat is typically known as a compensatory beat and such a beat is n stored withi.n the trend area 26c of the RAM 26. However, the difference between successive R-R intervals is calculated and the UPDATE$DELTA routine ls called to store the calculated difference within the IDH
array of RAM area 26b. In addition, the refractory period is set by the SET$REFR~CTORY$TIME subroutine as a function of the last ~,alculated QRS interval. Thereafter, the R$WAVE$T~PE
is set equal to "2" to condition the ACCEPTABLE routine to receive the subsequent, normal QRS complex. In addition, the areas of the RAM 26 for receiving the previously calculated and stored values'o~ the R-R interval are updated with t~e most recent value of the R-R interval being stored in the NEW$RR location.
In the instance that the MONITOR$SERVICE routine 616 determines that the signal is noise contaminated, MONITOR$-SERVICE sets R$WAVE$TYPE to "0", whereby step 708 passes con-trol to step 718 wherein the newly measured R-R interval is not stored because it is contaminated. However, R$WAVE$TYPE
is set to "2" to permit initialization . of the next uncontami-nated QRS complex.
The ACCEPTABLE routine 722, as shown generally in FIG~RE 10, is described in detail with respect to FIGURE 11, for processing the patient's ECG signal and for storing data that has been found to be a valid and acceptable R-wave. The ACCEPTABLE routine 722 begins with step 730, wherein the SET$-REFRACTORY$TIME subroutine is called to set the refractory period, wherein tl~e system 10 is disabled from sensing further _39 ~ ~175~0~
heart activity or signals placed upon the input leads for that period after the occurrence of the R~wave. Typically, the refractory period for a patient havlng a heart rate of 75 BPM
is in the order of 300 to 400 ms. 'rhe refractory period is variably set by the SET$REFRACTORY$'rIME subroutine as a func-tion of the previously determined R-R interval as stored within the NEW$RR location within a rotating buffer of area 26d oE
the RAM 26. As generally described above, this rotating buffer includes four locations wherein four consecutive values of the most recently determined values of t:he R-R interval are stored, in order, in the locations NEW$RR, CURRENT$RR, PRIOR$RR, and PRE$PRIOR$RR. ~s a new value of the R-R interval is calculated or selected, as will be explained with respect to FIGURE 16, it is first stored in the NEW$RR location of the noted rotating 15 <buffer, and the old values of the R-R in-tervals are transferred 'to the next locations. The SET$REFRACTORY$TIME subroutine selects that value of the R-R interval located in the NEW$RR
location and, using the following expression, REFRACTORY =
KQT (NEW$RR ~27)/60, determines the length of the refractory period in terms of sample clock counts as generated by the clock 24. Thereafter in step 730, the subroutine UPDATE$DELTA
i5 called for determining the difference between adjacent R-R
intervals by subtracting the value stored in the PRIOR$RR loca-~tion from that stored in the CURRENT$RR location. The calcu-lated value of the difference between adjacent R-R intervals is used to define a pointer to a bin or cell within the inter-val difference histogram array of area 26b of the RAM 26 and that bin is thereafter incremented by "1" to count the occur-rence of that difference between the CURRENT$RR and PRIOR$RR
intervals.
Decision block 732 is executed to determine whether a premature beat has occurred, based upon the most recent data indicative of the R-R intervals as stored within the NEW$RR, CU MENT$RR, PRIOR$RR, and PRE$PRIOR$RR locations of the noted rotating buffer. In particular, there are two types of premature ., ~ ~75~B
., , beats that are detected, a premature beat with compensatory pause and an interpolated beat; these types of beats are detected in that they are attri~utable to malfunctions of the ventricles and are considered to be more serious than premature beats arising due to malfunctions of the atria.
The occurrence of a premature beat with compensatory pause is illustrated in FIGURE 18A wherein there is shown a series of R-waves R0, Rl, R2, R3, and R4 with the R-wave R0 occur-ring first in time and the R-wave R4 occurring last ln time.
As illustrated, the R-wave R3 has occurred early in time, being shifted to the right as seen in FIGURE 18~ -towa~d R-wave R2; further, the space between R-waves R3 and R~ is greater than normal providing a compensatory pause so that the R-wave R4 occurs at approximately its normally expected 15 ;time. ~n interdigitated premature beat is illustrate~ in FIGURE 18C wherein a beat having R-wave R3 is inserted approx-imately midway between the beats corresponding to waves R4 and R2, noting that the interval between the R-waves R4 and R2 is approximately equal to the normallyoccurriny R-R inter-val. As will be explalned, the subroutine 732 detects ~hethera premature beat with compensatory pause or interdigitated premature beat has occurred. Premature beat data is processed and stored in a first manner by steps 736 through 742 whereas if no premature beat has occurred, the R-R interval is processed in a second manner by steps 748 through 764.
The determination of whether the heat is premature or not is made by examining the values as stored within the locations NEW$RR, CURRENT$RR, PRIOR$RR, and PRE$PRIOR$RR o~
the noted rotating buffer in th~ following manner. Sub-routine 732 determines whether a first condition is met, i.e.,whether the R-R interval as stored within the CURRENT$RR inter-val location is less than 75~ of that value as stored in the PRIOR$RR location; this comparison can be visualized by examining FIGURE 18B, wherein the interval between the R~ and R3 waves is less than 75 percent of the interval between the Rl and R2 waves. Next, to determine the existence of a com-pensatory pause, the value CO~BO$RR, indicative of the sum of the R-R intervals a.s stored within the NEW$RR and CURRENT$RR
locations, is comparcd with a value indicative of 175~ of the R-R interval as stored within the PRIOR$RR location. As shown in FIGURE 18B, the length between the R4 and R2 waves is compared to the length between the Rl and R2 waves, and if greater than 1.75 times the length between the Rl and R2 waves, and if the first condition is met, the decision block 73~ provides an indication that the beat is a premature beat with compensatory pause by transferring control to step 736.
Second and third tests are made to determine whether an interdigitated premature beat R3, as shown in FIGURE 18C, exists. In particular, the value COMsO$RR indicative of the sum of the values within the NEW$RR and the CURRENT$RR loca-tions is determined to be less than 1.25 tl.mes the value of the R-R interval as stored within the PRIOR$RR location~ As seen in FIGURE 18D, this indication compares the total length in time between the R2 wave and the R4 wave to the length betwean the Rl and R2 waves. Further, a third test is made of whether the values stored in the CoMBo$RR location is less than 1.25 of the value of the R-R interval stored within the PRE$PRIOR$RR location. In other words, the length between the R2 and R4 waves is compared with the length between the R0 and Rl waves to provide an indication of the stability of the heartbeat pattern; if the heartbeat pattern is very irregu-~
lar, the detect~d beat may not be a premature beat but an indi-cation of some other, more dangerous anomaly. If the first condition and second and third test results are positive, there is provided an indication by the decision step 732 that an interdigitated premature beat has heen detected and the process moves to step 736.
Step 736, shown in FIGURE 11, is the start of a pre-mature beat processing routine. Step 736 sets the R$WAVE$TYPE
: flag equal to "1", whereby the processed R-wave is noted as an anomaly; as a result, when the STORE$RR$INTERVAL$DATA routine 3S 700 of FIGURE 10 is again run, a branch to the PROCESS$ANOMALY
.. . .
-~2~
subroutine 720 will be executed whereb~ only the R-R interval data is stored and the system is prepared to receive the next R-wave as an acceptable R-wave. Next, step 738 looks to the location PB$HISTORY within area 26d of the RAM 26 where the number of premature beats for the current trend sample inter val is counted and recorded, to determine whether there is space left there for further incrementation. If space is left, the PB$HISTORY location is incremen-ted by one in step 740. In either event, the process moves -to step 742, wherein the routine WAVEFORM$STORAGE$MANAGER is called to initiate processes executed by the MONITOR$S:ERVICE routine that save a waveforrn sample containing the premature beat within one of the circulating buffers of area 26a of the R~M 26. In addition to initiating waveform storage, WAVEFORM$SToRAGE$MANAGER, step 742, implements a storag`e lockout system that prevents the waveform storage area 26a of the R~M from being filled up in a few minutes by a "run" of premature beats or other arrhythmias.
In particular, when WAVEFo~`~$SToRAGE$~ANAGER is called to store a waveform, it compares the current value of ELAPSED$TIME with the type of arrhythmias being saved. If the lockout period has not expired, WAVEFORM$STORAGE$MANAGER simply returns with-out initiating a sample save. If the lockout has expired, a sample save will be initiated and the lockout period will be initiated to prevent storage of other similar arrhythmias for 10 minutes by adding 600 seconds to the current time as taken from ELAPSED$TIM~ to determine that time when the storage of a sample of that particular arrhythmia waveform will be permitted. Thereafterr in step 744, the locationsofthe rotating buffer are advanced, whereby the R-X intervals as stored in the various indicated locations are set to the next later location and the latest calculated value of the R-R
interval is set in the NEW$RR location.
If the decision step 732 decides that the beat or R-wave under investigation is not premature, the process advances to step 748, which is the start of a routine that .
L~
processes non-prelllature beats. Step 7~8 computes the current heartbeat rate by inverting the value of the R-R interval stored within the CURRENr$RR
location and, further, the cells within the current bin of the trend sample area 26c are updated for the maximum/minimum rate trends. Ln particular, the cell locations where the maximum/minimum rate trends are stored, are com-pared with the current computed value of the heartbeat rate, and if greater or less, respectively, the corresponding bin location is updated with the new maximum or minimum rate. The determination of the maximum and minimwn rates of heartbeat provides a statistical indication of the regularity of the heartbeat and, as will be explainecl, will be displayed for the benefit of the physician. It is also contemplated within the teachings of this inven-tion that the diEferences between successive intervals of the peak heart activity signal or heartbeat, as are calculated to obtain the interval difference histogram, could also be used in calculations to determine the standard deviations of the interval differences and that such standard devia-tion could be determined for each trend sample interval and stored in an appropriate location in memory corresponding to that interval. Next in step 750, a portion of the recently selected or calculated value of the R-R inter-val stored in the CURRENT$RR location is added to that location known as RR$SUM within area 26d of the RAM 26. A portion of the R-R interval, as opposed to using the whole amount, is used to reduce the amount of storage space required for the RR~SUM location. As indicated above, at the end of a particular trend sample interval, the subroutine TSI$SUMMATION is called to calculate the average R-R interval by dividing the sum value of the R-R inter-vals as stored with the RR~SUM location by the number of samples taken.
Next, as shown in FIGURE 11, a determination is made of whether an anomaly other than a premature beat is occurring and in particular whether a tachycardia, a bradycardia, or a skipped beat is present, to set a series of flags whereby that .... .
~7~
particular sample of -the ECG siynal corresponding to the anomaly is stored within one of the circulating buffers of the area 26a of the RAM 26. First, in step 752, the most recently calculated value of the heartbeat rate is compared with that maximum rate above which there is an indication that an anomaly known as a tachycardia is occurring within the patient's heart. Further, the step 752 determines whether the rate is increasing by com-paring the values of the R-R intervals as stored wi-thin the CURRENT$RR and NEW$RR locations and iE the values stored in the MEW$RR location is equal to or greater than that stored within the CURRENT$RR location indicating that the rate has begun to decrease, then the process moves to step 754, wherein the subroutine WAVEFORM$STORAGE$MANAGER is called to set those flags whereby a strip of ECG samples indicating the tachycardia is placed within a rotating buffer of area 26a of RAM 26.
Illustratively, the selected maximum rate is set at 120 beats per minute. If the most recent value of the heartbeat rate is not above that maximum level, the subroutine moves to step 758, wherein the most recently calculated rate is compared with 20 respect to a minimum rate indicative of the occurrence of a bradycardia and if below the minimum, e.g., 40 BPM, step 760 calls the WAVEFoRM$SToRAGE$MANAGER subroutine to set those flags whereby a strip of the ECG data illustrating the brady-cardia, is stored within a rotating buffer of the RAM area 26a.
25 If not below the noted minimum value, the process moves to step 762, wherein it is determined whether a beat has been skipped. In particular, that value of the R-R interval as stored within the CURRENT$RR location is compared with 1.75 times that value of the R-R interval as stored within the lo 30 cation PRIOR$RR and if greater, there is an indication of a skipped beat whereby the process moves to step 764 to call the WAVEFOR~$STOR~GE$MA~ ER to set flags that cause that strip of the patient's ECG samples to be stored within one of the circulating buffers of area 26a of the RAM 26. After each of 35 the steps 754, 760, 762, and 764, step 756 increments the s--appropriate rate histogram cell and step 744 updates the values of the R-R intervals within the locations o the rotating buffer, before returning to the MNTRM program and in particular to step 518, as shown in FIGURE 8.
Referring now to FIGVRE 12, the MONITOR$S~RVICE
routine 616, as generally shown in FIGURE 7, will now be described in greater detail. First the SAMPLE$ECG$AND$DO$-TIMING routine 800 is called in response to the detection o~
the sample clock signals as input to the CPU 14; as will be explained in detail later with respect to FIGURE 13, a sample of the ECG signal is taken and processed before being stored.
Four such samples are stored and then averaged before being placed in a location ECG$BYTE. Further, the routine 800 determines whether an R-wave is present and, if so, sets ~he R$FLAG true, and further determines if the R-wave is noise contaminated or not; if the R-wave is noise contaminated, the R$WAVE$TYPE is set equal to "0". The SAMPLE$ECG$AND$D.O$TIMING
routine 800, as generally shown in FIGURE 12, is more fully explained with regard to FIGURES 13 to 17. In step 802, it is determined whether the fourth ECG sample has been taken by examining the CLOCK$COUNT and if "0", the corresponding ECG
sample is the fourth. In addition, step 802 determines whether there is space available to store the next EC~ sample in one of the nine rotating buffers within area 26a of the RAM 26. If it.
is the fourth sample and there is space available, the process moves to step 804; if not, the process returns via exit point 820 to the main program. In step 804, the average indication of the last four samples is stored within a location of one of the circulating buffers as identified by the pointer LOOP$PTR;
thereafter., the LOoP$PTR is incremented to select the next loca-tion in the rotating buffer~ Thereafter, in step 806, the process looks to see if the SAVE$ECG$FLAG has besn set true by WAVEFoRM$STORAGE$MANAGER as called from one of the steps 742, 754, 760, or 764 to indicate, respectivelyl an anomaly such as a tachycardia, bradycardia, or a skipped beat. If SAVE$ECG$FLAG
:
- .:
~6~
is set true, the process moves to step ~08 wherein the counter LOOP$REMAINING is coun-ted down to permit a given number, e.g., 60, of additional samples of the ECG signal to be stored within the rotating buffer after the anomaly has been detected.
In this regard, it is noted that a total of 360 ECG samples are disposed within one of the rota-ting buffers of the area 26a of the RAM 26. If a no decision is made in step 806, the subroutine 616 returns to the rnain program.
Step 810 determines whether the rotating buffer has been filled by the ECG data, delaying the execution of the further steps until the 60 samples of the patient's ECG sig~
nals occurring after the SAVE.~ECG flag is set true have been filled as decided by step 810. If filled, the process moves to step 812 wherein the starting/end pointer within the filled 15 ;rotating buffer is stored to permit access when it is desired to read out the data stored in that buffer. Further, step 812 sets the storage pointer to the first location of the next available circular buffer within the area 26a of the RAM 26.
In step 814, a decision is made as to whether there is a fur-ther rotating buffer avaïlable within the area 26a, and if no,the RUN$FLAG is set false whereby the MNTRM routine 500 is directed to transfer control to the standby routine 208. If there is a further rotating buffer available, as decided in step 814, step 816 loads the location LOOP$REMAINING with the predetermined count of the additional ECG samples, e.g., 60, to be stored after the detection of the anomaly, and there-after, the SAVE$ECG flag is set false to terminate the saving of the ECG samples in one of the rotating buffers. Thereafter, the process returns through exit 820 to execute that step of the monitor mode controller program 500 which was interrupted by the sample clock.
As indicated above with respect to FIGURE 7, the MONITOR$SERVICE routine is called in response to the occurrence of each of the sample clocks if the system 10, as shown in FIGURE 3, is disposed in its mode for monitoring, i.e., the -~7-preamplifier 18 is coupled to the data acquisition unit 12.
The SAMPLE$ECG$AND$DO$TIMING routine 800 takes samples of the ECG signal in response to the sample clock occurring at th~
rate of 240 Hz and determines whether there is present a valid R-wave, as will now be explained in grea-ter detail with respect to FIGURES 13 to 17. Referrirlg now to FIGURE 13, the subroutine 800 begins with a timing step 822, wherein the ECG LED 88, as shown in FIGURE 4C, is energized for a fixed period, e.g., 40 ms. corresponding to 24 counts OL the sample clock, in response to the detection of each R-wave; in par-ticular, 24 counts are loaded into a RAM location LED$TIMER
and is decremented until it is set equal to "0", when a command is issued to deenergize the LED 88. In addition, step 822 steps two counters within area 26d of the RAM 26 that serve to time two separate functions. First, the ELAPSED$TIME location is incremented each second and is used as a system -timer that is initiated at the beginning of the monitor or calibration mode; the ELAPSED$TIME variable is used to control the timing of the trend sample and,in addition, the timing of the lockout period in which further strips of the ECG signals may not be stored, as explained above with respect to the WAVEFoRM$SToRAGE$-MANAGER routine 742 of FIGURE 11. The second clock is formed by the RR$TIMER location and is used to time the R-R interval, i.e., that interval between successive, valid ~-waves; the initiation and termination of the RR$TIMER location will be explained below. Next in step 824, an INPUT$AND$FILTER$ECG
routine is called whereby a sample ECG signal is taken and stored in a our location rotating buffer that is incrernented each time a new ECG sample is obtained. The ECG data is fil-tered after a sample is taken by averaging the contents of thefour location buffer and storing the result in the location ECG$BYTE. Upon the occurrence of the next sample, the average ECG data stored in the ECG$BYTE location is trans-ferred to the PRIOR$ECG$BYTE location, the rotating buffer is updated, and a new average is stored in ECG$BYTE. ECG$BYTE
and PRIOR$ECG$BYTE will be used, in a manner to be explained, to determine whether a valid R-wave has been detected. Next, 7~
. .
in step 826, the process examines the current count of the RR$TIMER to determine whether the refractory period i5 over and in particular compares the current count of the RR$TIMER
to the refractory period determined by the SET$REFRACTORY$TIME
routine, as explained above. If the refractory period is over as determined by step 826, the SEGMENT$HUN'rER routine 900, as will be described more ully with respect to FIGURE 14, is called to determine the existence of an R-wave segment. After the execution of the SEGMENT$HUNTER routine 900 or there has been indication that the refractory period is not yet over as detenmined by step 826, step 828 makes a decision as to whether a possible R-wave segment has been ound; as will be explained in detail below with respect -to FIGURE 14, the SEGMEMT$HUNTER routine sets the SEGMENT$STATUS location equal to "l" or "2" if a valid segment has been found, or to "3" if a "runt" or short segment has been found; thus, if step 830 finds a "1", "2", or "3" within the SEGMENT$STATUS location, the process moves to the SEGMENT$ANALYST routine 1000 wherein the detected segments are compared to determine if a valid R-wave has been detected. After the routine 1000 has been executed or if the SEGMENT$STATUS has been found equal to "0", the process ~oves to step 830 wherein the SEGMENT$STATUS
location is set equal to "0" to prepare the process for the next ECG sample. Thereafter, the process exits via step 832 to complete either the MONITOR$SERVICE routine 616 or the CALIBRATION$SERVICE routine 614. In particular, if the system is in monitor mode, the process returns via step 832 to step 802, as shown in FIGURE 12.
The SEGMENT$HUNTER routine 900, as generally shown in FIGURE 13, is more fully explained with respect to FIGURE 14, wherein initially step 902 evaluates the HUNTER$MODE location of R~M 26 to determine the state of the SEGMENT$HUNTER routine 900;
initially, the HUNTE~$MODE location is set to "0" by the ini-tialization step 504 of the monitoring routine 500. When HUNTER5MODE is set to "0", the process proceeds to step 906 to .
.
., .
7 ~ Aj~
begin the process o~ detecting -the start of a po~ential R-wave segment. As ~hown in FIGURES 19, the QRS complex, of which the R-wave is shown to ~orm a positive-going peak, can be approximated by a series of segments. FIGURES l9A and B show examples of valid R-waves wherein such ECG signals have been represented as a series of three segments. As will be explained below, the existence of a valid R-wave is detected by measuring the time interval between segments, the length, slope, and magnitude oE segments, and the number of segments.
Initially, in step 906, the time of interval or space between two consecutive segments is measured and, if greater than 62.5 ms., a decision is made that any previously detected segments de~o~e.J
are part of a~ QRS complex or noise signal because th~ maxi.mum interval between two related signal segments has been exceeded.
Consequently, the process moves to step 916 wherein the SEGMENT$STATUS location is set equal to "3" to indicate that the maximum interval between two valid segments has been exceeded. If the maximum allowable space between two segments - has not timed out as decided by step 906, step 908 stores the current data in a segment start location of the RAM area 26d and initializes the timing of a period corresponding to the maximum length of a valid segment, e.g.l 95.8 ms. The current data includes the previous value of the average ECG signal as stored in the PRIOR$ECG$BYTE location, and the current value of time from the RR$TIMER location. Next step 910 determines whether there is a change of slope and if the change of slope is positive by comparing -the value stored in ECG$BYTE location and the PRIOR$ECG$BYTE location. If the first value is greater than the second value by a predetermined amount indicating a positive slope greater than a threshold valuel then step 912 sets the HUNTER$MODE location equal to "l" to direct the SEGMENT$HUNT~R routine 1000l as shown in FIGURE 16l to look for the end of that segment. If step 910 makes a "no" decision step 914 determines whether a segment with a negative slope is present by examining the ECG$BYTE and the PRIOR$ECG$BYTE
~ 50_ ~7~,~U ~
locations, and if the PRIOR$ECG$BYTE value is greater than that value stored in the EcG~syTE location by a prede~ermined amount, there is an indication that a beginning of segment has been found, and the process moves to step 918 wherein the HUNTER$MODE flag is set equal to "2" to direct the SEGMENT$-HUNTER routine 1000 to look for an end of that segment. After any of the steps 916, 912, or 918, the process returns to step 828 of the SAMPLE$ECG~AND$DO$TIMING routine 800.
Upon the further calliny of the SEGMENT$HUNTER routine 900 and either step 912 or 918 has set the HUNTER$MoDE flag equal to "1" or "2", step 902 will sense the particular flag state and direct the process to either of steps 922 or 928 to locate the end of a segment. As an illustrative example, assume that the staxt of a segment with positive slope was detected on a prior pass through SEGMENT$HUNTER 900 so khat HUNTER$MODE flag has been set to "1". Consequently, the evaluation step 902 transfers control to step 922 to locate the end of the segment with the positive slope. Firs-t, step 922 checks to see whether there has been a slope reversal or whether the segment duration limit,which was set in step 908, has timed out. I either there has been a slope reversal or the duration of a segment has timed out, the process moves to.
step 924 wherein the amplitude or magnitude of the segment is calculated in terms of its absolute value and thereafter the SEGMENT$END$HOUSEKEEPING subroutine, as will be further explained with respect to FIGURE 15, is executed, whereby the various counters or timers are rsinitialized to prepare for recalling the SEGMENT$HUNTER routine 900 to find a new segment.
In particular, the step 924 recalls the value of the PRIOR$-ECG$BYTE that was initially stored by step 908 at the.c:ommence-ment of detection of the segment and subtracts that value from the PRIOR$ECG$BYTE stored at the detection of the end of the segment to obtain in absolute terms the amplitude from the beginning to the end point of the ECG sample. After step 924 has been completed or step 922 has responded "no" to both 75~
inquiries, the SEGMENT$HUNTER routine 900 returns to process-ing the service procedure step 828.
Upon a subsequent execution of the SEGMENT$HVNTER
routine 900 wherein the ~UNTER$MODE is set equal to "2", step 902 directs the routine to step 928 wherein the end of a nega-tive slope is determined in a manner similar to that described above. Briefly, step 928 determines whether there has been a slope reversal by examining the PRIOR$ECG$BYTE and ECG$BYTE
locations of the rotating buffer and/or whether the segment duration limit has timed out. If either of these conditions is met, the process moves to step 930 wherein the absolute value of the m~gnitude or amplitude oP the segment is deter mined before calling the SEGMENT.~END$HOUSEKEEPING, as will be explained with respect to FIGURE 15. Thus, in the SEGMENT$-HUNTER routine 900, as explained above with respect to FIGURE14, the beginning and end of a segment as well as its amplitude are detected in preparation for executing the SEGMENT$ANALYST
routine 1000 wherein a plurality of such segments will be examined to determine whether the particular cornbination of segments are so detected makes up a valid R-wave.
Referring now to FIGURE lS, there is shown the SEGMENT$END$HOUSEKEEPING subroutine 930 wherein after the cal-culation of the amplitude of the segment by either step 924 or 930, the various counters and storage locations are initialized~
in preparation to identify and measure the parameters of the next segment. In particular, step 932 compares the measured values of the duration and magnitude of the detected segment with predetermined minimum values, for example, 15 units or counts of the D/A converter 34, and 16.7 ms. corresponding to four counts of the sample clock 24. If these minimum require-ments are exceeded, the process moves to step 934 wherein the value of HUNTER$MODE is transferred to SEGMENT$STATUS to be used, as will be explained, in the execution of the SEGMENT$-ANALYST routine 1000. If the minimum requirements are not met as decided by step 932, a further determination is made whether -52- ~ S ~ ~
the maximum in-terval between seyments, e.g., 62.5 ms. has elapsed since the end of the last segrnen~; in particular, step 938 compares the current value of the RR$TIMER with the SEGMENT$START$DEADLIME and, if greater, the process moves to step 940 whereln the SEGMENT$STATUS is set to "3" indicating a time out with no valid segment detected. After steps 934 and 940, and if step g38 answers in the negative, the sub-routine moves to step 936 wherein the HUNTER$MODE flay is set equal to "0" to prepare for the recalling of the SEGMENT$HUNTER
routine 900 to detect the next segment and in particular to detect the beginning of the next segment.
As shown in FIGURES l9A and B, a series o~ segments can represent valid R-waves. In particular, the QRS complex is defined, in accordance with this invention, by three seg-ments having a particular slope, amplitude, duration, andsequence. As shown generally in FIGU~E 13, the SEGMENT$HUNTER
routine 900 identifies an inclividual va].id segment by obtain-ing values of its duration, slope, and magnitude, and passes those values to the SEGMENT$ANALYST routine 1000, which stores these values in specific locations, examines the sequence of segments, classifies them as QRS signal or as noise, computes the R-R interval, and resets RR$TIMER. The execution of the SEGMENT$ANALYST routine 1000 will now be explained in more detail with respect to FIGURE 16. Initially r in step 1002, ANALYSIS$MODE is accessed to determine which of the "0", "1", or "2" values that is currently set in that location. In the initializing step 504, as shown in FIGURE 8, ANALYSIS~MODE
is set equal to "0" so that initially the process will branch to step 1006 wherein the first segment will be obtained and analyzed, as will now be discussed. Upon obtaining the data correspondinq to the first segment, step 1006 examines the SEGMENT$STATUS location to determine whether it is less than ~3~O As was described with respect to step 934 of FIGURE 15, SEGMENT$STATUS is set equal to "1" or "2" corresponding to detection of valid segments with positive or negative slopes, ~53~ ~'7~
respectively; if -the space between segments has timed out, the SEGMENT$STATUS flag was set equal to "3" by steps 916 or 940.
Thus, if the segment was found by the SEGMENT$HUNTER to be valid, step 1006 stores the segment data in the first segment 5 location within the RAM 26. ~n particular, the first segment data includes its magnitude, the time the segment began as recorded by the RR$TIME~, the amplitude at its peak as stored s in the PRIOR$ECG$BYTE location, and the time at the end of the segment as recorded in the RR$TIM~R. In addition, step 1008 10 changes the ANALYSIS$MODE value from "0" to "1" so khat upon the subsequent execution of the step 1002, the SEGMENT$~NAL~ST
routine 1000 moves to step 1012 to evaluate the second segment.
First, step 1012 determines whether SEGMENT$STAT~S is equal to "3", i.e., a time period in excess of that maximum period 15 corresponding to 62.5 ms. has timed out since the end of the first segment and, if so, step 101~ calls the TREAT$AS$NOISE
subroutine 1034 wherebyl as will be explained later with regard to FIGURE 17, the various storage locations, timers, and counters are reset to erase data correspondiny to the first 20 segment to prepare the SEGMENT$ANALYST to receive and analyze the next segment data as a first segment. When step 1012 detects a SEGMENT$STATUS of "3", it indicates that a single segment, as shown in FIGURE 19C, has been detected but a second segment has not occurred within the acceptable time 25 limit; therefore, no valid R-wave has been detected.
~owever, if step 1012 indicates that the status of the second segment is either a "1" or a "2", i.e., not a "3", the process moves to step 1016 wherein a determination is made of whether the first and second segments have the same slope;
30 in particular, step 1016 compares the SEGMENT$STATUS locations of the first and second segments, and if the same, i.e., both segments have the same slope,the process moves to step 1018 wherein the data corresponding to the first and second segments are merged with each other, thus assuming that a large single 35 segment was interrupted by noise or cardiac conduction - 5~ -abnormality and -that only a single segment has been detected.
In particular, the starting point of the first segment portion is retained, whereas the termination point of the second sey-ment portion is used as the termina-ting point of the combined first segment. The magnitude of the! combined first segment is taken as the sum of the previously determined magnitudes of the first and second segment portions. Further, the ANALYSIS$MODE
flag is left as "1" so that upon the reexecution oE the SEG-~IENT$ANALYST routine 1000, the second segment will be obtained and anal~zed. On the other hand, iE step 1016 determines -that the slopes o~ the Eirst and seconcl seymen-ts are dif~erent, the identifying data of the seconcl segment in terms o~ starting and stopping points and magnitude are stored in that location of the RAM 26d for the second segment data; thereafter, the ~NALYSIS$-MODE flag is set equal to "2" to prepare the SEGMENT$ANALYST
routine 1000 to receive and analyze data corresponding to the third segment.
Upon the third reexecution of the SEGME~T&ANALYST rou-tine 1000 with ANAL~SIS$MODE set equal to "2", step 1002 trans-fers the routine 1000 to step 1022, so that the data correspond-ing to the third segment can be received and analyzed. Step 1022 compares the slope of the current segment with the slope of the previous segment. If the slopes of the successive seg-ments are determined to be the same, step 1024 assumes that the second segment was interrupted and the data corresponding to the current segment is merged into that data of the second segment, i.e., the starting point is taken as that o the second seg-ment, the terminating point is taken as that of the subsequent or current segment, and the amplitude is obtained by summing the amplitudes of the prior and current segment portions. Step 1024 does not change ANALYSIS$MODE from its current value of "2", and thereafter the process returns to continue the service routine at step 830. If the slopes dif~er, step 1026 stores the current data including starting and stopping points and magnitude in the area 26d of the RAM 26 corresponding to data for the third seg-ment.
` _55~
Thereafter, the ANALYSIS$MODE is set equal to "0" to prepare the SEGMENT$AN~LYST routine 1000 to receive and analyze the next sequence of segments.
Thereaf-ter, step 1028 initiates an evaluation of the stcred data of the three segments to determine whether a valid or invalid R-wave has been detected. First, step 1023 determines whether the magnitude of the firs-t segment is larger than that of the third segment by comparing the values of magnitude as stored within the assigned locations to the first and third segments. If the first request is greal:er, the case shown in FIGURE l9a, the first two segments, i.~., from point 1 to point 2 and from point 3 to point 4, are recognized as forming the outline of the R-wave, whereby the R-R interval is computed, the RR$TIMER is reset, and the QS
duration is computed. ~n this regard, it is unders-tood that the data for identifying all three segments is obtained at a point in time after the detection and analysis of the segments;
therefore, the process of analysis is made by determining when the peak of the R-wave occurred, and in case one, as shown in . _ FIGURE l9A, the peak occurs at the end of the first segment and the R~R interval is determined by examining the value of the RR$TIMER at the end of the first segment. In similar fashion, the QS duration is taken as the difference between the beginning of the first segment and the end of the second segment. Further, it is now necessary to reset the RR$TIM~R
to begin the timing of the next R-R interval. To this end, the RR$TIMER is reset not to zero but to a time corresponding to the interval between the end of the first segment and the end of the ~hird segment. On the other hand, if the first segment is not larger than the third segment corresponding to a second case, as shown in FIGURE 19B, the last two segments, i.e., that second segment beginning at point 3 and ending at point 4 and that third segment beginning at point 5 and ending at point 6, are selected as the outline of the R-wave, the R-R interval and QS duration are set accordingly, and the .
` -56~ S ~
RR$TIM~R is reset accordingly. In particular, the peak of the R-wave is selected as the end o~ the se~cond segment to thereby define the R R interval as the value of the R~$TIMER
at the end of the second segment. Further, the QS duration is thereby defined as -the difference between the values of the ~RR$TIMER -taken at the end of the third segment and -the begin-ning of the second segment. The RR$TIMER is set to begin its timing at the beginning of the third segment; more particularly, the RR$TIMER is reset at the end of the third segment to a time corresponding to the length of the third segment to reflect the actual time at the resetting of the RR$TIMER whereby the subsequent R-R interval may be measured. After each of steps 1030 and 1032, a further check is made by step 1033 to determine whe-ther the measured R-wave passes further validity 15 ;tests; in particular, it is determined that the Q5 duration is less than 221 ms. and that the determined R-R interval is greater than 242 ms. or 58 counts of the sample clock. It is also contemplated within the teachings of this invention that the average R-R interval, as determined for the corresponding trend sample interval, may be compared with a given limit period to identify the existence of a heart anomaly. If within these limits as determined by step 1033, step 1036 sets the R$FLAG true to indicate detection of the occurrence of a valid R-wave. Thereafter, the ECG LED is turned on for an interval of 83.3 ms. by setting the LED$TIMER for a corre-sponding period. Then the process continues with the block 830 of the service routine. If the parameters of the detected R-wave do not fall within the noted limits step 1032 calls, in step 1034, the TREAT$AS$NOISE subroutine, as will be explained with respect to FIGURE 17.
If the three segments do not occur within a given interval of each other as determined by step 1012 or the QS
duration and the R-R interval are not within the predetermined limits as determined by step 1032, the TREAT$AS$NOISE routine 1034 is called, as will be explained with regard to FIGURE 17.
~ _57~ 5~3 First, in step 1038, the RR$TIMER is reset to "0" and the ANALYSIS$MODE is set to "0" to prepare the SEGMENT$AN~LYST
routine 1000 to receive and analyze data corresponding to the first segment of a new complex. Thereafter, step 1040 determines whether R$WAVE$TYPE is greater than "2", and if yes, the routine resets the R$WAVE$11YPE to "4" insuring initialization during the STORE$RR$INTERVAI$DATA subroutine 700, as generally shown in FIGURE 8 and in more detail in FIGURE 10. If the R-wave is less than or equal to "2", indicative of complete initialization, the R$WAVE$TYPE is set equal to "0" to insure that the nex1: R-R interval is ignored because it is noise contaminated. After either of steps 1048 or 1042, step 1044 determines whether the system is in its monitor mode by checking the XCMODE and, if yes, the LED 88 15; is flashed for a period o 41.6 ms. to provide an indication to the operator that noise is being detected; in this regard, this length or duration for flashing the LED 88 is about hal~
the period as would be displayed for energizing the LED 88 in response to detection of a valid R-wave. I~ the system is not in the monitor mode as determined by s~ep 1044, the system is immediately returned to continue the execution of the SEGMENT$ANALYST routine without flashing the LED 88.
I. DESCRIPTION
Technlcal Field This invent.i.on relates to apparatus for compact:ing and storiny data indicative of a patient's heart activity.
Backgrou_d o' The prior ar-t has recognized, as described in the article entitled "The Use of R-R In.terval and Different Histo-grams in Classifying Disorders of Sinus Rhythm" by P.M.M. Cash-man appearing in the January 1977 issue of Journal of Medical Engineering Technology, the need to provide heart activ.ity and in particular ECG recordinys over a relatively long period of time from ambulatory patients. The primary objective o:f such recordings i5 to permit identification of infrequent and tran-sient disturbances of cardiac rhythm, which may be important in diagnosing patients with vague or intermi-ttent symptoms such as di2~y spells, blackouts, and fainting attacks. While recording for a longer period of time, the physician's interest is to de-tect short, specific dysrhythmic events which occupy only asmall percentage of the total recording time. Such dysrhythmic events are considered as singularities in a background rhythm.
Typically, the physician is interested not only in the back-ground rhythm but also the specific dysrhythmic events which may comprise slower responses of the heart to influences such as s~a,~
drug treatment or psychological stress over long periods of time. In this regard, it may be desirable to compare the long recordings from either different patients or from the same patient at di~ferent times.
At present, the use of ambulatory heart monitors typiied by the Holter recorder, is well known in the art.
The Holter technique typically records the patient's ECG
activity for at least 24 hours. The difficulty with the use of a Holter recorder is that it provides a large volume of information which requires processing and analysis. Such analysis is usually time consuming and expensive. Typically, the review and processing time may be reduced by reading out and displaying the data at increased speeds, typicall~ multi~
ples of 25, 32, 60, and 120 of the normal playback rate. ~n order to display the heart data, and in particular the QRS
complex, with sufficient clarity, it may be necessary to use recording apparati with ~requency responses in excess of 12 kHz. This is possible with ultraviolet recorders, fiber optical recording oscilloscopes, or inklet records, all of which are expensive.
The prior art has suggested a variety of apparati for the processing and display of a patient's heart activity data. Such apparatus may include a detector for automatically sensing a dysrhythmia and in response thereto, stores and dis-plays a sample of the patient's ECG either directly onto paperor onto a screen. Further, ajcontourogram may be provided by a storage oscilloscopeoroscilloscope camera whereby subsequent lengths of a patient's ECG are displayed one beneath the other.
Each such segment or tracelength is proportional to the beat-to-beat interval and the right-hand edge of the trace gives a continuous record of the R-R interval trend. One of the most common methods of presenting ECG data is to provide a heart rate trend wherein the R-R interval is continuously measured and the R-R interval data is segmented into continous time periods. In particular, the rate or interval of the heart~eat , ~751~8 is averaged to provide a display of average heart rates or intervals for a series of adjacent time periods. For resolv-ing individual beats on a trend plot, it may be preferable to plot the instantaneous rate in a form of a trend plot.
In add~ition to the methods of display as discussed above, there is the need to identify and to highlight the iso-lated occurrence of an abnormal or ectopic beat. Typically, the ectopic beat is detected and is counted during the course of the heart monitoring period. Apparatus has been provided to detect premature heartbeat. The degree of prematurity can often be preset by the operator to provide selection of the beats to be detected. The output of such detectors is applied to a counting circuit, a trend recorder, or some form of alarm depending upon the desired application. Several techniques have been used to detect the abnormal shape of the patient's ECG signal including simple integrators, filters, and digital pattern recognition systems. It is contemplated that normal ECG signals are analyzed to determine the limits of occurrence of the peaks of the QRS complexes, and to compare such limits with the incoming signal to determine whether the present ECG
signal fits within these predetermined, normal limits.
In more sophisticated systems, the patient's normal ECG signal is detected and stored. In subsequent monitoring, the patient's normal signal is used as a template against which to compare the current heart data. U. S. Patent 4,115,864 discloses such a cardiac monitor, utilizing a computer to con-trol the storage of the patient's normal signal, to process the inputted ECG signal into digital segments, and to compare those segments with corresponding segments of the previously stored normal ECG of the patient. When the stored normal signal does not fit the current signal, an alarm or detector circuit is actuated and the number of occurrences of that ectopic signal is stored within the memory of the computer.
The described system is capable of providing a trend history of such ectopic beats in the form of a histogram or trend plot.
.. ..
In any processing of ECG data, it is necessary to use dis-crimination techniques to extract a trigger pulse for each cardiac cycle.
In most instances, the detection circuit triggers on the R-wave, and it i9 thus necessary to distinguish the R-wave of the QRS complex from the rest of the signal. It is contemplated that lt may be necessary, in the presence of heavy background noise, to terminate the monitoring for the dllration of the high level background noise. In other instances, the detection circuitry ~ay provide an alarm 50 that the operator can intervene.
Noting the desire to provide monitoring for long periods of time of a patient's heart activity, the continuouY monitoring by the Holter monitor provldes a complete record at relatively inexpenslve cost. On the other hand, the methods of processing and compacting the data for slmpler, limited display oftentimes requires a ~ore complex system of increased cost.
To avoid either pitfall, ~t has been suggested that the data b& presented in the form of an R-R interval histogram. A histogram presents heart activity data taken over a period of time in a compact manner, wherein the successive intervals between ~-waves are computed and are classified as to their dura-tion. ~ shown in Figure 1, the X axis is in seconds corresponding to the R-R interval, whereas the Y axis provides the number of beats that occur within each interval. Such a presentation provides a large data reduction in a vlsual way which allows easy comparison between the histograms o the same patient taken at different times and between different patients. The R-R interval histogram (IH) is formed by generating an array of columns or bins, each corresponding to a range of values of beat-to-beat tor R-R) interval. As each ECG complex is detected, the tiDIe interval between it and its predecessor is measured and the total in the appropriate bin incre-mented. A typical histogram might contain a hundred bins, each having a width of 20 milliseconds, giving a total range of R-R intervals from O to 2 seconds. A bin capacity of 4,095 beats (a 12-bit binary word) will permit about 4 hours of normal heart monitoring.
A variation of the R-R interval histogram is the R-R interval difference hlstogram (IDH~. l'he IDH is ~ormed similarly except that the quantity as displayed along the X axis ls ~he amourlt by which the R-R
lnterval changes between successive beats. The central bin is designated 0, i.e., 0 difference between successive beats, and a hundred columns provide a range between -1 second through ~) to +1 second, with a bin width of 20 milliseconds. The mean of the inten~al differences i9 always very close to 0. The IDH provides an indication of the manner of change o the heartbeat, where the width of the IH i9 the measure of the spread o~ heart rates about the mean value. It is apparent that the use of both the IH
and the IDH provide the physician with a powerful tool for d~agnosis of ; the patient's heart.
Further, U.S. Patent 4,146,029 describes a system implanted within the body of the patient for dispensing medication into the patient's body. The system is implemented by a microprocessor for the control of the process whereby each QRS complex of the patient's heart is det~cted as to the length of the QRS co~plex and to the interval therebetween. A program of comparing the length of the QRS complex to an acceptable length is ~; provided to determine the validity of each QRS complex and further to first ~ calculate the interval between ~RS complexes and to compare the measured ;~ 20 length to a known or standard length for a particular patient. More specifically, the process compares the length to determine how much shorter the measured ongoing intervals are with regard to the normal length and dependent upon the decrease of length, i.e., the lncrease of heart rate, the microprocessor controls dispensing apparatus to vary the dosage given to the patient.
.~
,:
.. : ,~ .
.` ' _5_ .
, ,:
'~'i',~ '' ' ~ , ~L IL 7 5 .~
:
Included in the apparatus .is a process :Eor measuring the R-R in-terval and for accumulating -the average of the R-R in-terval over a given period of -time, for example, an hour. The averaged R-R
intervals are compared with known standards to variably control the dispensation of medication to the patient.
Brief Summary of the Invention _ _ It is an object of this inven-tion to provide new and improved apparatus for rnonitoring and storing heart activity signals utilizing a data processor illustratively .in the form of a digital microprocessor.
It is a further objec-t of this invention to operate the data processor in a most ef:~icient manner to evaluate and store signals indicative oE the patient's heart signals.
; It is a rnore specific object of this invention to pro-vide new and irnproved apparatus for monitoring and storiny sig-nals indicative of a patient's heart activity, wherein the apparatus is embodied by a data processing apparatus that oper-ates in a first, relatively slow real time frame to sample the signals of the patient's heart and in a second, relatively fast computer time frame for processing and evaluating the sampled heart signals.
In accordance with these and o-ther objects of the in-vention, there is provided apparatus for monitoring and storing electrical signals indicative of a patient's heart activlty in-cluding apparatus for monitoring and storing electrical signals indicative of heart activity including a series of heartbeats, said apparatus comprising: (a) means for sampling a patient's heart activity to provide a sequence of sampled heart signals at a rate sufficient to provide a plurality of sampled heart sig-nals of one heartbeat and comparing one sampled heart signalwith a subsequent heart signal of said one heartbea-t to provide a heartbeat signal indicative of the occurrence of a valid peak ; of said one heartbeat, if said one sampled heart signal has a ~ predetermined amplitude relationship to said subsequent sampled ; heart signal; (b) memory means including a plurality of storage ,~ locations, said locations for storing corresponding heartbeat ~ signals, and (c) means responsive to the provision of said .
7S~
~ 6a -:.
heartbeat signal for evaluating a sequence of ~aid heartbeat signals as stored in said plurality o:E loca-tion~ to determine whether the patient '8 activity is rhythmic, and if so or pro-viding a maniEestation of rhythmi.c heart activity and if not, or providing a manifestation of disrhythmic heart activity.
.~ In an illustrative embodimen-t of this invention, there is pro-vided a sampling clock i~r providing a ,ampling clock ;
'',;
~,' ~, ... .
:, .
,,.~, ,`,:
.....
';
'~
1.~
'`"
;:' , : .
~7~ ~7~
signal to the sampling circui-t whereby the ~amples of ~he patient's heart activity are taken. A second computer clock provides computer clock signals to at least a portion of the data processor whereby the processing of the heart activity i5 effected in the relatively fast computer time frame.
In a further aspect of this invention, the data processor comprises a first portion or means that operates in response to the sample clock signal for evaluatiny the heart activity signals to determine the existence of a valid heart-beat. In an illustrative embodiment, the heart activity sig-nals are evaluated to determine segments thereof and thereafter to examine a series of such segments to determine whether a valid heartbeat has been monitored.
In a still further aspect of this invention, the data processor includes a further portion operating in the com-puter time frame ~or processing the detected heartbeat and in particular Eor determining the in-terval therebetween, and subsequently the heartbeat rate. The manifestations of the intervals between successive heartbeats and the rate o the heartbeat are stored in a further location of the memory.
Such stored data is evaluated to determine whether the heartbeat is occurring with a regular rhythm or, if not, is an anomaly.
If such an anomaly i5 detected or the patient has, through a manually operable switch, provided indication of an anomaly or a heart discomfort, the data processor transfers a series of the sampled heart signals to a still further storage loca-tion to be stored therein for subsequent read out and display.
Brief Descrlption of the Drawin~s_ These and other obJects and advantages of the present invention will become more apparent by re~erring to the following detailed description and accompanying drawings, in which:
FIGURES 1 and 2 show, respectively, histograms of the R-R in-terval and of the interval differences, over an extended period of time;
FIGURES 3A and B show, respectively, a high-level functional block diagram o the basic elements of the heart monitoring systeM in accordance with the teachings of this i.nvention, and a perspective view of the portable data acquisition unit incorporated into the sys~em o~ FIGURF 3A
; FIGURES 4A, B, C, D, and E are detailed circuit diagrams show-lng the elements of the system generally shown in FIGURE 3A;
FIGURE 5, on the second sheet of drawings, is a diagram of the storage structure areas of the RAM comprising a memory within the portable data acquisition system as shown in FIGURE 3A;
FIGURE 6 is a high-level diagram of the non-real tim~ program as stored within the ROM and as executed by the CPU of the system shown in FIGURE 3A;
PIGURE 7 shows the various service routines and the ~anner ln ` 2C which they are related to coordinate the real time tasks for the system of FIGURE 3A;
FICURES 8, 9, 10, and 11 illustrate the monitoring rou~ine as generally shown in FIGURE 6;
FIGURES 12 to 17 show the details oi' the MONITOR$SERVICE rout-ine as generally shown ln FIGURE 7, with FIGURES 13 to 17 being on the same sheet;
FIGURES 1~, B, C, and D illustrate, in graphical form, the wave shapes of various anomalies th~t may occur within the patient's ECG
si~nal and their timung; and ~ FICURES 19.~, B, and C illus~ratc the segments making up valid R-wave forms ~s detcctcd by the ~lO~ITORSSER~'ICE routinc as shown in FIGURES
12 to 17.
Description of the Preferred Embodiment Referring now to the drawings and in particular to FIGURE 3A, there is shown a heart monitoring system 10 adapted to be coupled by leads 22a, b, and c to a patient 20 to receive signals to be processed and in particular compac-ted, before storage in a random access memory (~M) 26 of a portable acqui-sition unit lZ. The heart monitoring system 10 is capable of monitoring a patient's heart for an ex~ended period of time, e.g., 3 hours and 20 minutes, while continuousl~ processing and in particular compacting data as received in real time for storage in a manner that facilitates the later playback and display by a display unit 30 of the data in a dense form that is readily discernible to the physician. In particular, the patient's ECG signals are continuously monitored to provide heart data in the nature of trends of the average, maximum, and minimum heart rates for consecutive intervals, e.g., 5 minutes, throughout the data acquisition. In addition, the system further stores data in a orm~ whereby histograms of the R-R interval difference and heart rate may be displayed.
In addition, the heart monitoring system is designed to detect certain arrhythmias of interest and upon detection, automati-cally stores for a limited period of time a segment of the ECG
signal indicative of the detected arrhythmia. After the acqui-sition period is over, the heart monitoring system 10 is assembled so that the portable acquisition unit 12 is coupled to its playback unit 30 to initiate a readout and display upon its analog chart recorder 36. The playback unit is divided into a first portion known as an adaptor 32 and a second por-tion including the recorder 36 and a chart edge printer 38.
As will be explained in detail later, the edge printer 38 com-prises an array of elements for printing a series of marks along the edge of the chart of the recorder 36 to provide an indication of the occurrence of certain events during the monitoring operation; for example, the occurrence of a heart anomaly as detected by the acquisition unit 12 would be noted by a mark that would be pl.aced upon an owtputted trend chart to desigllate that interval in whlch anomaly occurred. Furthcr, the patient 20, upon sens-ing heart pa;.n, presses a mark button 84, as shown in FIGURES 3~ and 4A, to cause the heart signals occurring during that interval to be i~entified by a mark provided by the chart edge printer 38. In addition, the printer 38 may provide marks to separate the various charts as are printed out by the re-corder 36.
The heart monitoring system is generally shown in FIGURE 3A where-in the ECG signals are applied by the leads 22a~ b, and c from electrodes attached to the patient 20, ViQ a diEferential preamplifier 18 to the port-;able acquisition unit 12 and in particullr to an A/D converter 16. '['he signals now in digital Eorm are applied to the central processor unit (CPU) 14~ The input of the A/D converter 16 is coupled via the differential ampli-Eier 18 to the connectors 22a and 22b. The difEerential amplifi~r 18 in-cludes an ECG preamplifier that buffers the ECG snap connectors 22a and 22b to reduce cable generated artifacts. The ECG preamplifier drives the differ-ential amplifier 18 with a passive ground system. The snap connector 22b is attached to a pre-gelled ECG electrode approximately located at site V5 of the patient's side, whereas the connector 22a is attached to a pre-gelled ECG
electrode approximately located at the sternum. These preamplifier connec-tions will produce a positive-going R-wave for most patients. The ground con-nector 22c is attached to a pre-gelled ECG electrode located on the left pectoral region. Though the illustrative embodiment shown in FIGURE 3A
externally monitors the patient's heart, it is contemplated within the teach-ings of this invention to connect the sensing electrodes directly to the patient's heart and transmit the detected heart signals from an internally implanted transmitter to an external receiver coupled suitably to the data acquisition unit; the contemplated transmitter and receiver may illustratively take the form of that disclosed in U. S. Patent 4,166,470 assigned to the assignee of this invention.
A clock signal, as derived from a sample clock 24, is applied to the CPU 14 to control the rate at which sample signals .
,~ ..,~"
7~
are derived ~rom the patient 20. It i.5 unclerstood that the CPU 14 has its own internal clock, as is wc311 known in the art, for controlling its internal operations as well as its inter-facing with the other elements of the unit 12. The CPU 14 is coupled by a data/instruction (I/D) bus 27 to each of a read only memory (ROM) 28 and to the RAM 26. The ROM 28 is adapted to store the instructions which the CPU 14 executes to detect or recognize the input ECG signals, to process these signals including compaction and to appropriately store the processed signal in designated areas of the R.AM 26; the programs or routines as stored in the ROM 28 will be explained generally with respect to FIGURES 6 and 7, and in detail with respect to FIGURES 8 to 17. The data as processed and compacted by the CPU 14 is stored in designated areas of the RAM 26 dependent upon the nature of the data, the areas of the RAM 26 in which data is stored are shown in FIGURE 5.
~ The playback unit 30 is optically coupled to an iso lating latch or playback adaptor 32 which acts as an isolating digital buffer to receive from the acquisition unit 12 infor-mation to be transmitted to and displayed upon the analogchart recorder 36 and the chart edge printer 38. Because of the optical isolation, the patient 20 may be connected to the ac~uisition unit 12 when the acquisition unit 12 is connected to the line powered playback unit 30 without fear that the patient's ECG signal will be affected by noise or that an elec-trical shock hazard will be affected by noise or that an electrical shock hazard will be presented to the patient 20.
As shown in FIGURE 3A, data is applied via a D~A converter 34 to the analog chart recorder 36 which may illustratively take the form of a pen recorder as manufactured by Astromed under their designation Model 102. The latch 32 is also coupled to an edge printer 38 as manufactured by Texas Instruments under their designation EPN 3300.
FIGURE 5 discloses a data structure or memory map illustrating the manner in which the various types of data are :~'7Si ~
-~12-stored in corresponding recJiong oE ~he R~M 26. As shown in FIGURE 5, the RAM 26 includes a first area 26a for receiving ECG data as continously monitored by the system 10 when dis-posed in its monltoring mode. In the monitoring mode, as will be explained in detail later, each QRS complex of the patient's ECG signal is detected and analyzed to determine whether it is valid, i.e., that it is not nolse, and upon occurrence of a valid QRS complex signal, the signa:L i5 processed and stored within the first area 26a. It is desired to retain a strip of the ECG signal if there is detected an arrhythmia which may occur after a desired portion of the signal has already been detected. To this end, the first area 26a of the R~M is operated as a pseudo-tape loop by storing each sample piece of data in successively lower RAM addresses until the lower limit of a section of the area 26a is reached. At that point, the storage point of address P is returned to the topmost storage location of that section and the next data is over-written upon the o]d data. The cycle is repeated continuously until an arrhythmia is detected at which time a pointer to the first/last data boundary is stored and further data storage is inhibited. After the storage is complete, the first/last data pointer or boundary is saved, in a location noted as STARTING POINT, or directing output of data therefrom. The area 26a of the RAM 26 is divided into a plurality, e.g., nine of buffer sections 26a-0 to 26a-8, each buffer section includ-ing a qiven number (e.g., 360) of consecutive locations, wherein data indicatinq samples of every fourth ECG signal are placed in ~equence as indicated above. When one buffer section has been filled, the address or pointer P to the area 26a is moved to designate the topmost location available within the next buffer section. In this manner, nine strips of the ECG signal may be recorded and stored within the RAM 26 to play out and reproduce, as will be explained, a visual display of the ECG signal at that time. Though only nine buffer sections are shown within the area 26a of the RAM 26, it is contemplated -13- ~7~ 3 that 40 or even more such sections could be incorporated within the area 26a limited only by the size of the deslred memory and its C09-t, and considerations of battèry drain.
In a further contemplated embodiment of this invention, a single circular buffer section could be used with the data stored therein replicated in-to permanent storage loca-tions of the RAM 26 upon the dete~tion of a heart anomaly.
The second area 26b is dedicated for storing data to be displayed in a histogram format. In particular, the area 26b is configured illustrative:ly as two arrays of 50 16-bit cells. A first of the 50-cell arrays is intended for storing an interval difference histogram ~ID~I), wherein each cell is 4 sample clocks, i.e., 16-2/3 ms. wide. As will be ;explained later, after the R-R interval has been calculated and the difference between successive interval~ obtained, that internal difference is divided by 4, the fractional part being disregarded. The result of the division process is used to point to the appropriate ID~I array cell within the first array of the area 26b and that cell is incremented to indicate the occurrence of a difference of that particular order. In an illustrative embodiment of this invention, each of 25 IDH cells is provided on the negative and positive sides of the center to handle differences ranging from 0 to 100 sample clocks, i.e., 0 to 416-2/3 ms. with all differences larger than 416-2/3 ignored. The second 50-cell array of the area 26b is intended for storing the rate histogram, wherein each cell is 5 beats per minute wide. As will be ex-plained later, after the R-R interval has been measured and the equivalent heart rate calculated, that rate is divided by 5, the fractional part being disregarded. The result of the - division process is used to point to the appropriate rate his-togram cell, and that cell is incremented to indicate the occurrence of that particular interval. The interval differ-ence histogram is primarily used to indicate rhythm instabili-ties, such as might be produced by atrial fluttcr, sick-sinus-syndrone, and premature contrac-tion, while -the rate his-togram indica-tes the distribution of intervals. ~y contrast, a trend plo-t indicates gross changes in intervals as will now be dis-cussed.
Area 26c of the RAM 26 provides a s-torage area for re-ceiving trend data including three sets of 40 ~-bit cells, each cell for storing one of the minimum and maximum of the patient's heart rate and the average of the heart rate as detected during tha~ interval, e.g., 5 minutes. Each set of cells corre~ponds to a -trend interval.
In addition, area 26c provides storage for data indi cating whether the mark button 84 was pressed or EC~ was stored during a trend sample interval. Typically, if the patient no-;tices some symptom, e.g., dizziness, fainting, or some otherdiscomfort indicative of a heart condition, he may push the mark pushbutton 84 as disposed upon his portable acquisition unit 12 and as shown more specifically in FIGURES 3B and 4B. Upon the actuation of the pushbutton 84, a specific bit pattern is stored in the cell corresponding to -the trend sample interval wherein pushbutton ~4 was pressed. I~ an ECG strip was saved in area 26c during a given trend sample interval, the bit pattern in the corresponding cell will be modified to indicate that fact. Upon playback, an indication is made upon the analog chart recorder 36 as to that interval in which the pushbutton 84 was depressed in the form of a mark identifying the time interval, whereby the reviewing physician may identify the time of button depression or ECG sample storage with the corresponding values of minimum, maximum, and average heartbeat rate.
Area 26d provides data storage to receive various variables including state indications and flags that are set during execution of the process.
Referring now to FIG~RES 4A, ~, C, and D, there is shown detailed circuit diagrams of -the heart monitoring appara-tus 10 as generally shown in FIGUR~ 3A. The data acquisition unit 12 is found principally in FIGURES 4~ and 4B, wherein there is shown the CPU 14 which may illustratively -l5- ~'7~
take the form of a central procosslng un:it manufactured by Intel under their designation 8085A. The CPU 14, in conjunction with address latch 44, re-ceives and transmits data via its address bus 46~ control bus 50, the data bus 48, and the connectors Jl and J2. Data is received from the A/D con-verter 16, as shown in F~GURF: 4C, and is transferred to and from the RAM 26 via the data bus 48, as shown in ~IGURE 4A. The RAM 26 is comprised of a plurality of memory elements as manufactured by l~larris under their designa-tion No. HM 6514. The data bus 48 is connected to the data transport ports DQl-4 of each of these elements. The ROM 28 is comprised of two memory ele-ments as manufactured by Intel under their designation 2716 and upon beingaddressed, instructions of the programs to be described are read out via their output ports 00-07 to be transmitted via the data bus 48 to khe CPU 14.
As shown in FIGURES 4A and B, addresses are applied via an address bus 46 to the elements of the RAM 26 and of the ROM 28 to address one of the elements and a selected location therein. The CPU 14 generates an initial set of addresses from its outputs AlO, 11, and 12 to be applied to a pair of chip or element decoders 40 and 42, illustratively taking the form of a decoder manu-factured by RCA under their designation 4028. The outputs of the chip de-coders 40 and 42 develop address signals whereby one of the chips or elements of the RAM 26 or ROM 28 is addressed at a time. The particular location with-in one of the elements of the RAM 26 or the ROM 28 to be addressed is selected by an address latch 44 whose inputs are taken from the ports ADE and AD 0-7 of the CPU 14 to provide output signals applied by the address bus 46 to each of the aforementioned elements to address a selected location therein.
Further command signals are developed from the IO/M to control whether data is to be transferred between the RAM 26 or whether data is to be transferred to the input/output (I/O) and in particular to be transferred via the data bus 48 from the A/D converter 16 (as shown in FIGURE 4C) or to ,~ .
1.6~
transfer data to the add.ressing latch 1~0 ~as shown in FIGURE
4D), which comprises a par-t of khe latch 32 (as shown in FIGURE
3).. The ports designated RD and WR control whether data is to be written onto or read out from the RAM 26. As shown in 5 FIGURE 4A, the CPU 14 includes a set o interrupt inputs that are used in a manner, as will be more fully explained, to sim-plify the programs that are required to implement the various processes and functions of recognition and storage of ECG data.
For example, the sample clock 24, as shown in de~ail in FIGURE
4C, applies its sample signal via conductor 80, conneckors P1 and Jl to the RST 7.5 interrupt of the CPU 14. The sample clock calls a SAMPLE$ECG$AND$DO$TIMING routine, whereby sam-ples of the ECG signal are taken and ~he R-wave o~ the QRS
complex is examined to determine whether a valid R-wave is 15; detected to set thereby an R$FLAG, as will be explained with : respect to FIGURES 12 to 17.
A further interrupt is made when a voltage detection circuit in the orm of a Schmitt trigyer 54, a part of the power supply 52, as shown in FIGURE 4A, senses that the battery voltage has fallen below a predetermined level. A battery 82, as shown in FIGURE 4C, is coupled via connectors Pl and Jl to the power supply 52 and illustratively comprise an 18-volt battery; when the Schmitt trigger 54 senses that the voltage of the battery 82 has fallen below 10 volts, an output is developed and applied to the TRAP interrupt of the C~U 14 to initiate a controlled transfer to a shutdown mode of opera- ;
`tion, as will be explained with respect to FIGURE 7, wherein only the logic addressing and processing circuitry and the chips of the RAM 26 remain energized, thereby to preserve the energy level of the battery 82. In particular, the Schmitt trigger 54 comprises an operational amplifier Ul9 that compares : the voltage output of the battery 82, normally 18 volts, with the regulated voltage 5SD as provided from the output 55 of the power supply 52, and if the battery voltage falls below a minimum, illustratively 10 volts, the operational amplifier 7 ~ ~t Ul9 provides a high-going output siynal via the NOR ga~e U8 to the TRAP interrupt of the CPU 14 to thereby initiate the LOW$-VOLTAGE$DETECTOR$SERVICE 604, as will be explained with respect to FIGURE 7.
The circuitry, as shown in FIGURE 4A, of the acquisi-tion unit 12 responds to such a low voltage condition in the Eollowing manner. First the A15, IO/M, and RD output terminals of the CPU 14 all go high, causing the NAND gate U5 to apply - a low-going output signal to a pulse-shaping circuit comprised of capacitor C16, diode CR5, and resistor R40. The shaped out-put is in turn applied to set a flip-floP circuit 57 comprised of two NOR gates, each designated by the notation U8. As seen in FIGURE 4A, the delayed output 56 of this flip-flop circuit 57 is applied to the power supply 52 via transistor Ql and : 15 ;also to an array of NAND gates U4 and U5. When transistor Ql - is turned on, a current is applied to a switching regulator U20 that causes power supply 52 to deenergize most elements of the system 10, as will be explained later. In this manner~
generally the power supply 52 removes energization from most of the elements of the system 10 while maintaining energization to the various elements of the RAM 26 and further, the array of NAND gates V4 and U5 are disabled to prevent the further : application of address signals from the chip decoders 40 and 42 to the RAM 26. In this way, the data previously stored in the elements of the RAM 26 will continue to be stored, and further, addresses and/or spurious signals that may be g~ner-ated by the CPU 14 and/or the chip decoders 40 and 42 cannot be applied after voltage shutdown to the RAM 26. Further, the output of the flip-flop 57 is applied to drive conductive the transistor Q2 of the power supply 52 whereby a positive-going signal is applied to the SD input of the switching xegulator circuit U20, which may illustratively take the form of that regulator manufactured by Silicon General under their designa-tion SG1524. In the normal mode of operation, the regulator U20 periodically energizes the base of the transistor Q3 via ... .
~17~
its outputs CA and CB at a rate to charge capacitor C14 -to a desired voltage in the order of +5 volts; the capacitor C14 is repeatedly recharged while tending to be discharged by the load via inductor Ll whereby a substantially constant, regu-lated ~5 volts is applied to its output terminal 55, alsodesignated ~5SD. In addition, the periodic voltayes are also applied by the primary winding of the transformer T2 to its output secondaries whereby ~8 volts are applied to energize elements of the circuit shown in FIW RE 4C. Linear regulator U20 provides at its output VR a ~5 regulated voltaye. As can be seen from an examination of FIGURES 4A, B, C, and D, most of the elements of the system lO are energized by the regulated +5SD voltage as derived from the output 55 of the power supply 52 while it is being operated in its normal, regulating mode.
Howevex, when the transistor Q2 is driven conductive upon the occurrence of a low voltage condition, an input signal is applied to the SD input thereby disposing the regulator U20 to the second, non-operative mode whereby the regulated ~5SD volt-age i5 removed from most of the e:Lements of the system 10 thereby reducing significantly the drain as applied upon the battery 82. During its shutdown mode of operation, a voltage of ~5 volts is only applied by the output terminal VR of the power supply 52 to the various elements of the RAM 26, the chip decoders 40 and 42, the NAND gates U4, V5, and U6, and the flip-flop 57. In particular, the normally applied output from the terminals CA and CB of the regulator U20 goes high to render the transistbr Q3 non-conductive, thereby disconnecting the voltage from the primary winding of the transformer T2 and the inductor Ll,and turning off the output voltage of ~8 derived from the secondary of the transformer T2 and the output derived from the terminal 55. However, as noted above, the regulator U20 continues to apply the -~5 voltage from its output VR to the above-noted elements.
The RS~ 6.5 interrupt of the CPU 14 is used to detect whether the preamplifier 18 is connected via connector J4 to ~ -19- ~7~
the portable acquisition unit 12, as shown in FIGURE 3. A5 illustrated in FIGURE 4C, the pins 1 and 2 oE the connector J4 are connected to the preamplifier connector P4 which has a short across pins 1 and 2 whereby a low or "0" signal is applied via the conductor 94 and connectors Pl and ~1 to the RST 6.5 interrupt of -the CPU 14. As will be explained with respect to FIGURE 7, in the absence of a connection to the ECG pre-amplifier 18, the system 10 is prevented from entering its monitor or calibration mode of operation.
In the course of either the calibration or monitor modes of operation, a switch 84, as shown in FIGURE 4C, may be depressed to apply a signal via conductor 86 and connectors Pl and Jl to the SID input of the CPU 14. In the monitoring mode, the depression of the switch 84 effects a storage of a flag identifying a relatively small interval during the entire monitoring period in which the patient sensed some symptom or felt some discomfort. In the calibration mode, depression of switch 84 causes the refractory period associated with sensing of the QRS to be increased. The SOD terminal of the CPU 14 drives via conductor 87 and connectors Jl and J2 the transistor Ql, as shown in FIGURE 4C, whereby the ECG LED 88 is energized. As will be explained, during the calibration modes a potentiometer R9 within the ECG amplifier 19, as shown in FIGURE 4C, is adjusted to set the gain of the ampli-fier 19 to an appropriate level dependent upon the amplitudeof the patient's ECG signal. The LED 88 is energized in a manner to indicate when the potentiometer R9 has been appro-priately adjusted. A start button 95, as shown in FIGURE 4C, is depressed to initiate the operation of the system 10 whereby a low signal is applied to the RESET IN input of the CPU 14. In particular, the start button 96 is depressed to apply a low-going signal via the terminals Pl and Jl to a NAND gate U5, whose output is in turn applied to reset the flip-flop 57. Upon being reset, the flip-flop 57 applies a low signal to deenergize the transistor Q2, whereby the high : ', ' '' ' . . .
level applied to the SD lnput o~ the switching regulator U20 is removed, per-mitting regulator U20 to return to the normally energlzed Mode. In addition, the CPU 14 develops an output reset signal that is applied to reset and clear the addressing latch 140, as shown in FIGURE 4D.
As shown in PIGURE 4A, a computer clock 15 provides a 1.843 ~Iz clock signal that times the execution of the program by the CPU 14 as well as the various other data transfer functions controlled thereby. As will be explained later, the functions of the CPU 14 including various data transfer functions and calculations are carried out under the control and within the time frame of the computer clock 15, whereas many of the data ga~hering func-tions, including the sampling oE the patient's EC'G signals are carried out in real time under the control of the sample clock 24.
As shown in FIGURE 4C, the input ECG signals are applied to the differential ECG preamplifier 18 of a design familiar to those skilled in the art. The output of preamplifier 18 is fed to the ECG amplifier 19 which com~
prises operational amplifiers 90 and 92 that are connected in series with each other. As mentioned above, the variable potentiometer R9 controls the gain of the ECG amplifier l9. The output of ECG amplifier l9 is applied to the input Ii of the A/D converter 16. ~he converted digital signal is applied from the outputs B0-7 of the A/D converter 16 via the data bus 48 to be selectively stored under the control of the CPIJ unit 14 within the ele-ments of the RAM 26, as shown in FIGURES 4A and 4B.
FIGURES 4D and 4E show the isolating latch 32 and the D/A converter 34, generally shown in FIGURE 3, as coupled to the analog char~ recorder 36 and the chart edge printer 38. The isolating latch 32 is comprised of the addressing latch 140, a 16-channel optical isolator 141, and a DC-DC con-verter 139. The data to be printed or displayed is applied via the data bus 48 to the inputs D0 to D7 of the addressing latch 140. The latch 140 deve-lops a first set of digital outputs PB0 to PB7 that are applied via the 16--channel optical isolater 141, as :
~ ~ 7 5~
shown in FIGURE 4D, and the D/A converter 34, as shown in FIGURE 4E, whereby the analog recorcler 36 is driven. The latch 140 develops a second set of outputs PA0 to P~7 that are applied to the 7-dot chart print:er 38. In particular, the outputs of the latch 140 are applied to an array of dual channel, optical isolators U4 to Ul], as shown in FIGURE 4D.
Isolators U4 to Ull are provided to isolate the analog chart recorder 36 and the char~ edge print:er 38, which may be powered by a conventional ~C outlet, from the data acquisition unit 12 to insure that signals, including the energizing voltage as would be picked up by the recorder 36 and printer 38, will not be applied to either distort the ECG signals as derived from the patient 20 or present a shock hazard to the patient 20.
The isolated output ~ignals from the optical isolators corre-spondi.ng to the outputs PAl to PA7 and PB0 to PB7 are appl.iedvia connector~ P4 to the D/A converter 34, and to a set of drive transistors Ql to Q8, respectively. As shown in more detail in FIGURE 4E, the collectors of each of the drive tran-sistors Ql to Q8 are connected to the inputs of the chart print-er connector 35. FIGURE 4E does not explicitly show thechart edge printer 38, but it is understood that an array of printing elements in the form of heater resistors are incor-porated into the analog chart recorder 36 and are energized to selectively print out a mark or marks to highlight the.
various graphs or presentations of data made thereby. In par-ticular, the analog chart recorder 36 is capable of making a presentation indicative of A R-R interval histogram in a manner similar to that shown in FIGURE 1, an interval differ-ence histogram similar to that shown in FIGURE 2, and a trend sample showing for a series of consecutive trend sample inter-vals, e . g ., 5 minutes, the minimum/maximum heart~eat rates.
In the course of the presentation by the analog chart recorder 36, the chart printer 38 will provide a series of marks on the same paper to separate these various graphs and, with respect to the trend sample graph, will provide a series of different marks to indicate the occurrence of various events in a trend sample. For example, a triple mark above a trend sample -22- '~ 7~
indicates that the system has detected an anomaly, as will be described :in detail later. I~ the patient 20 senses distress possibly related to his heart activity and in response thereto depresses the mark button 84, the chart edge printer 38 is energized to place a double mark adjacent that trend sample.
If excessive noi.se is imposed upon the EGG signal as derived from the patient 20, the occurrence of that noise will be indicated by the chart edge printer 38 by forming a single mark above the corresponding trend sample. The connector 35 applies via leads to energize the heat resisting elements (not shown) to form the noted marks.
As indicated above, the addressing latch 140 applies a series o~ outpu-ts PB0 to PB7 via ~le optical isolators U8 to Ull to the D/A converter 34, which provides an output signal to its Io output to an operational amplifier U2. In turn, the operational amplifier U2 output is applied to the signal input of the chart recorder 36, whereby its pen is moved to reflect the input analog signal. The circuit as shown in FIG~RE 4E
provides means in the form of the potentiometer R36 whereby an offset may be provided to the signal to be applied to the analog chart recorder 36.
As will be explained later in de~ail, the particular mode of operation in which the system 10 is disposed is depend-ent upon which of the elements of the system are connected to the data acquisition unit 12, as shown in FIGURE 3A. For example, the system is operative in either a playback mode or a calibrati.on mode i~ the playback unit 30 is coupled to the portable acquisition unit 12. As shown in FIGURE 4D, the addressing latch 140 includes outputs PCl and PC0 that are set, respectively, high and low by the signals imposed upon the outputs PC5 and PC4. If the connector P3 is in fact coupled to the connector J3, as shown in FIGURE 4C, the addressing latch 140 may be accessed to determine the signals imposed upon terminals PCl and PC0 to thereby set the system 10 to enter either its calibration or playback mode of operation.
75 ~
In addition, inputs are provided from khe All and Al2 out-puts of the CPU 14, as shown in FIGURE ~A, to the Al and A0 inputs of the addressing latch 140 to control whether the particular signal as applied via the data bus 48 is to be S applied to the chart recorder 36 from its outputs PB0 to PB7 or to the chart edge printer 38 from the outputs PAl to PA7.
Referring now to FIGURE 6, there is shown a h.igh-level flow diagram of the method in which the heart data moni-tor of this invention operates to record and compact heart data and to playback the stored data. in a form that intelligi-bly informs the physician of the patient's heart condition.
Initially, in step 200, the operator depresses the start/reset button 96 upon the control panel of -the acquisition unit 12 as shown in FIGURE 3B. Thereafter, in step 202, the interrupts lS to the CPU 14 are disabled. As explained above, the CPU 14 has a variety of interrupt inputs which permit the CPU 14 to take data from different areas of the ROM 28. As will be explained with respect to FIGURE 7, the interrupt permits a hardware mechanization of various processes to simplify the software and to effect a saving in time of execution.
Initially, the~e CPU interrupts are disabled. The interrupts are enabled by a series of flags that are disposed within an interrupt array or register within the CPU 14 that permit selected of the CPU's interrupts to be used while disabling the remainder. Initially, each of the CPU's interrupts are disabled and thereafter an initialization process enables selected of the CPU's interrupts by applying flags to the corresponding areas of the interrupt array. As a further part of the initialization, signals are applied by the CPU 14 to set the isolating latch 32, permitting data flow to and from the analog chart recorder 36 and the chart edge printer 38, and to sense whether the playback unit 30 is coupled to the acquisition unit 12. Thereafter, the select step 204 i~
executed whereby one of the following operating modes is selected: playback (PBKM), calibration (CALIBM~, and monitoring .
` ~` `` -2~ 7~
(MNTRM). sasically~ step 204 looks at the system configura-tion in terms o~ which elements are connected to the acquisi-tion unit 12 to determine in which mode the system 10 may be operated. For example, I~ only the playback unit 30 is coupled to the acquisition unit 12, then step 204 trans~ers the pro~ram to the playback mode by step 300. However, if the playback unit 30 is disconnected from the acquisition unit 12 and the preamplifier 18, and in particular its connector J4, a~ shown in FIGURE 4C, is coupled to the portable acqui~
sition unit 12, the system 10 transfers to the moni-toring mode 500 via the initializing step 400. In particular, the connector J4 interconnecting the preampli~ier 18 and the acquisition UTIit 12 has two pins connected together, whereby the RST 6.5 input to the CPU is shorted or rendered -to its lowest state, so that an input state is stored in a register of the CPU 14, to be accessed during the select step 204.
Similarly, the coupling of the acquisition unit 12 to the playback unit 3n and in particular to the isolating latch 32 is made via the input/output port of the CPU 14 which responds if the isolating latch 32 is coupled to the CPU 14.
Be~ore entering into the monitoring mode 500, it is necessary to check PERMIT$FLAG indicating that the system had been calibrated by the calibration mode 206. Otherwise if ~ -the PERMIT$FLAG is not sensed, the system cannot enter the monitoring mode 500. The MCLEAR routine 400 resets PERMIT$~LAG
after directing the process to monitoring mode 500 to prevent reentry into the monitoring mode 500 unless the calibration mode 206 has been rerun to set PERMIT$FLAG. In order to enter the calibration mode 206, it is necessary to detect that the data acquisition unit 12 is connected to both the p~eampli~ier 18 by detecting the shorted pins of its connector J4, as well as to the isolating latch 32. ~n the other hand, i the data acquisition unit 12 is not coupled to any other device, the system exits immediately to the standby mode 208.
In the calibration mode 206, the CALIBM (calibration mode controller) program is executed to help the operator - 25 ~
adjust -the system to accept different a~nplitudes of heart sig-nals and set difEeren-t refractory periods as are needed to pro-perly de-tect the QRS complexes of a patient. In connection with the amplitude of the patient's R-wave, these amplitudes may vary as much as 20:1 within a normal patient popula-tion. Thus, to prevent saturation of the A/D converter 16 and to permit it to operate within a ran~e o~ 30 to 50% of its total capability, it is necessary to set the gain of the operational amplifier 90 (see FIGURE 4C) of the EGC amplifier l9 until the normal ampli-tude of the R-wave is of a height to permit a 2:1 increase of the ECG signal amplitude without reaching the upper or lower count limits of the A/D converter 16. In this mode, the output of the preamplifier 18 is continuously monitored via A/D conver-ter 16, to determine whether the deviation from baseline peak, whether negative or positive, exceeds 40 A/D converter units or counts. If the peak input is below this limit, the CALIBM pro-gram causes the ECG LED 88, as shown in FIGUR~ 4C, to be left unenergized. If the peak amplitudes result in peak deviations from baseline that exceed a second limit corresponding to 60 units of the A/D converter 16, then the LED 88 is continuously lit. If the peak deviation from baseline measured by the A/D
converter 16 is between 40 and 60 units, the LED 88 will flash each time a QRS complex is detected. Normally, it is desired to set the gain of amplifier 90 such that the output of the A/D
converter 16 around the baseline deviates about -~ 50 counts throughout the cardiac cycle. To this end, the variable gain of the input amplifier 90 within the A/D converter 16 is adjusted, via R9, so that the LED 88 flashes on each QRS. In addition, the calibration mode 206 adjusts the refractory period, i.e., the expected period between the R and T waves of the patient's heart signal, during which EC~ signals applied to the da-ta ac-quisition unit 12 will be inputted but not processed to detect QRS complexes. To set the refractory period, the mark button ~4 is depressed, whereby a buzz or -26- ~ J:~
high :Erequency s.ignal is imparted to the ECG chart for a period as long as the mark button 84 is depressed. Such a signal is developed by the analog chart recorder 30 and increases in duration every 4 seconds while the operator holds mark button 84 down. The operator holds mark button 84 down until the refractory period indicated by the buzz signal extends to the end of the T wave. As will be explained later, the refractory period is com-puted in accordance with a SET.~REFRACTORY$TIME subroutine dependent upon the length of the last occurring R-R interval and a constant that is changed only during adjustment of the refractory period, i.e., the corresponding count of the refractory period counter in tuLn sets -the refractory ca].ibra-;tion constant which is used in the calculation of the refractory period upon successive occurrences of the R-R interval.
After calibration, as indicated by the setting of the PERMIT~FLAG, and the detection that the data acquisition unit 12 is coupled to the pre-amplifier 18, the select step 204 branches to the clear/initiali~ing routine 400, executing the MCLEAR program wherein the storage areas as shown in FIGURE 5 are cleared for receiving the refractory constants in preparation to entering the monitoring mode 500. The monitoring mode 500 will be explained later with respect to FIGURES 8, 9, 10, and ll, and is controlled by the MNTRM program to detect successive QRS complexes, to determine whether such complexes are valid or not, to characterize valid QRS complexes, to measure R-R intervals, and to control the processing of such data and the subsequent storage of the processed data within the RAM 26. ~he R-R interval is com-puted and the corresponding rate is obtained before storage within area 26c of the RAM 26, as shown in FIGURE 5. Next, the differences between the suc-cessively calculated R-R intervals are calculated to increment one of the bins within area 26b of the RAM 26. Further, -there is included a classi:Eica-tion subroutine to sense abnormal or arrhythmic heart ~, .
, .
~7~
-27~
signals; in particular it is determined whether the rate is above 120 or below ~0 beats per minute (~PM) or whether there has been a skipped or early beat. If so, the SAVE$FI~G is set and a trigger signal is generated to store the current set or strip of ECG rhythm signals within one of the nine buffers within area 26a of the RAM 26. Shortly after the S~VE$FLAG is set, the data in the current buffer is frozen and the pointer to the address of the s-toraye buffer moves to the next buffer if available within the area 26a.
The monitoring routine 500 controls monitor mode operations; it does not include routines for performing xeal time tasks such as timing intervals, R-wave detections, and calculating the R-R interval. The real time routines are separate, as shown generally in FIGURE 6, in order to simplify the total software requirement of this system. Briefly, real time tasks, including the R-wave detection routine, are entered once for each cycle of the sample clock 24. The moni-toring routine 500 is executed as long as a RUN$FLAG remains true. Any of the following events can set RUN$FLAG false, thus terminatiny the monitor mode: first, the battery for energizing the system 10 may fall below a predetermined level;
second, area 26c for receiving -the trend data may be filled, i.e., no more data may be stored therein; and third, the con-nector J4 of the preamplifier 18 may be disconnected. After RUN$FLAG is set false, MNTRM completes final housekeeping tasks in block 500 and transfers control to step 208 wherein the standby mode controller deenergizes all system components except the RAM 26. In particular, upon the completion of each of the steps in routines 300, 206, or 500, the process transfers to the standby mode 208 wherein the interrupts of the CPU 14 are disabled and the data as stored within the RAM 26 is protected from being read out or written upon. Further, the power supply 52 is shut down to all parts of the s~stem 10 with the exception of the power that is supplied to the RAM 26, thereby insuring the data as stored therein is safely continued to be stored. In this Eashion, the dxain as placed upon the system's battery 82 is minlmized to insure maximum battery life.
Further, the select step 204 may directly transfer S the process into the standby mode 2()8 if -the terminal of the preamplifier 18 as well as the playback unit 80 are discon-nected from the acquisition unit 12.
Further, as shown generally in FIGURE 6, a real time interface program 600 is provided that organizes the various tasks required to be performed in real time, for example, the detection of the R-wave, as a service to the mode controller programs that may be executed in computer time. These real time service routines may detect certain conditions which place the system 10 directly into the standby mode 208.
Referring now to FIGURE 7, the real time interface proyrarn 600 is shown in greater detail~ Step 602 detects whether the output of the system battery 82 is low and, if so, actuates the CPU 14 to enter a LOW$VOLTAGE$DETECTOR$SERVICE or routine 604, whereby the process is transferred to the standby mode 208. As shown in FIGURE 4A, there is included a Schmitt trigger circuit 54 that is coupled to sense the output of the battery 82. In response to detection of its voltage below a predetermined le~el, e.g., 10 volts, the circuit 54 applies a high or +5 signal to the TRAP input of the CPU 14 causing the CPU 14 to enter the LOW$VOLTAGE$DETECTOR$SERVICE 604. In this service 604, a determination is first made of whether the process is in the monitoring mode 500 and, if so, sets the RUN$FLAG false. As will be explained in detail later with respect to FIGURE 8, the monitoring mode 500 responds to the setting of the RUN$FLAG false to insure that the ECG data is completely recorded, that the calculations of the currént R-R interval is completed, and that the average of the then obtained ~-R interval~is calculated and stored in an appro-priate location within the RAM 26. Thereafter, the RAM 26 is shut down in a ma~ner so as not to lose any stored data and , ~.~7~
to maintain its energization, as will be explained later. The Schmitt circuit 54 actuates the TRAP interrupts of the CPU 14 in this manner to effect an interrupt of the program to its standby mode 208 in order to reduce the programming that would otherwise be required. Step 606 senses the absence o~
the ECG preamplifier 18 and in particular that terminal J4 associated with the preamplifier 18 is disconnected, i.e., the shorted pins are removed from the RST 6.5 interrupt of the CPU 14, and the RST 6.5 interrupt goes to +5 volts, whereby the CPU 14 initiates a PRE-AMP$STATUS$SERVICE 608 wherein the process may be transferred to the standby mode 208. In par-ticular, if the system is in the monitoring mode 500, the ser-vice 608 will force the system to loop until the preamplifier 18 is reconnected to the acquisition unit 12 or the mark button 15 ;84 is pushed. When the mark button 84 is pushed, the RUN$FLAG
is set false, causing MNTRM to put the system into its standby mode 208. While the system is looping, no further data is stored within the R~M 26 or processed to detect QRS complexes.
Further, when the mark button 84 is pushed, the average of the R-R signals received to that point in time is calculated and the pointers stored in various other locations of RAM 26 are reset. If the process is in its calibrate mode 206 of opera-tion, the system transfers directly to the standby made of operation 208 upon the sensing that the preamplifier of the ~CG 18 is disconnected.
Though but a single mark button 84 is shown in the described specific embodiment of this invention, it is con-templated that a series of such buttons could be incorporated into this system, whereby the patient could more specifically designate the type of sensation that is being felt as to a particular symptom, body function, or activity. In addition, it is contemplated that an accelerometer type device as would be attached to the patient's body could be substituted for the mark button 84 and upon rapid motion of the patient's body, indicative of a high rate of body activity, that switch .~ 7~
would be closed whereby the patient's ECG s:ignal would be recorded for a given period of time.
As shown in FIGURES 4A and C, the sample clock 24 provides a 240 Hz sample clock signal to the RST 7.5 interrupt input of the CPU 14. The sample clock causes the CPU 14 to effect a CRYSTAL$CLOCK SERVICE 612 whereby the appropriate mode service routine is set, as shown in FIGURE 7. In par-ticular, the service 612 checks the current mode of operation, i.e., determines which of the modes 300, 206, or 500 is in operation and,dependent upon the current mode, selects one of the service routines 614, 616, 618, 620, or 622 to execute.
In particular, the service 612 examines XCMODE, a mode status variable assigned to a specified location within the RAM 26, to determine whether its value is 0, 1, ~, 3, or 4, corre-sponding to the service 614, 616, 618, 620/ or 622 that mustbe selected. The services 614, 616, 618, 620, and 622 are carried out in real time and act as an interEace between the input signals which are received in real time and the further operations and calculations that are carried out by the corre-sponding mode controllers in computer time under the controlof the clock 15 coupled to the CPU 14.
A CALIBRATION$SERVICE 6i4 performs in real time the basic system timing necessary to the calibration mode controller (CALIBM) 206. In particular, the service 614 responds to the sample clock to repetitively call the R-wave detecting sub-routine whereby the QRS complex of the ECG signal is detected and its amplitude provided. The obtained ECG peak signals are saved and passed to the calibration mode controller (CALIBM) 206 that operates in response to the computer clock 15 to determine whether the QRS complex amplitudes are accept-able. Further, the CALIBRATION$SERVICE 614 also applies the ECG signal and the "buzz" signal as needed to the analog chart recorder 36 to facilitate refractory adjustment as explained above.
The MONITOR$SERVICE 616 acts as a real time-interface for the monitoring mode 500, performing basic timing functions, .. .
~7~
calling the R-wave detçctiny routine, and ef~ecting the storage of every fourth ECG byte, i.e., its corresponding aMplitude, into one o~ the nine rotating buffers formed within the area 26a of the RAM 26. I~ during the course of the monitoring mode 500, a flag is set by MNTRM indicating the detection of an arrhythmic signal, the current bufer of the area 26a is saved and the MONITOR.~SERVICE 616 develops a pointer to the next buffer, if available, within the area 26a.
Basically, the DATA$CHART$SERVICE 618 provides timing for the various data charts whereby data is output from the RAM 26 at a rate that corresponds to the incremental advance of the paper chart as driven by the recorder 36. For example, each cell of the trend data indicative o~ the average ~inimum and maximum R-R intervals is applied to the chart recorder 36 at a rate that one cell will be displayed per millimeter advance of the paper chart. In this regard, it is noted that the paper chart is advanced one millimeter per 40 ms. To produce such timing, the service 618 is responsive to the output of the sample clock 24 to produce a drive clock to the recorder 36. It is noted that the sample clock may not be simply divided to obtain the desired 40 ms. drive signal but rather a timing subroutine is provided to respond to 10, 10, ~, 10, 9 clock signals to produce corresponding drive advance signals to the recorder 36. The corresponding 48 clock signals occur- .
ring over a timing of 200 ms. are precisely equivalent to the occurrence of five 40 ms. intervals. The fact that each drive advance signal is slightly in error does not affect the overall accuracy of the chart provided by the recorder 36.
The DATA$CH~RT$SERVICE 618 operates in real time to effect a playback of the trend and histogram data stored in the R~M 26 upon the analog chart recorder 36 and the chart edge printer 38. In addition r the service 618 provides a 60 Hz square wave to the analog chart recorder 34 to provide marks between the graphs displayed upon the recorder 34. For exam-3S ple, there is a ~arked interval between the trend chart and _ 3~ 7~
the histogram chart to indicate clearly to the physician a divi-sion theretween.
The posi-tive ancl negative SLOPE~PLAYBACK S¢RVICES 620 and 622 respond, respectively, to po~itive-going and negative-going slopes of the input-ted ECG siqnal to interpolate between ECG points to provide a series of straight lines between two ad-jacent points to produce a smooth-looking curve on the chart recorder 36. A series of straight line segments each 16.67 ms.
long are used to reproduce an essent.ially smooth appearing curve between the two points. Realizing that the data acq~i~ition unit 12 is a portable unit and comprises a RAM 26 that has a limited storage capacity, it is desirable to store less than each sampJ.e of the patient's ECG signals in order to lncrease the length of time for which the monitoring ~ystem 10 may be used. However, upon playback wherein the stored data within khe RAM 26 is read out, it is necessary to pxovide a smooth appear-ing curve.
The monitoring mode 500, as generally shown and des-cribed with respect to FIGURE 6, is more fully shown in FIGURE 8. The select step 204 transfers control to MNTRM 502, the entry point label for the monitor mode controller 500 via the MCLEAR program 400. Control then passes to step 504 to implement a delay for warm-up and to store selected variables within the area 26d of the RAM 26. For example~ it is neces sary to set the pointer to designate an initial buffer loca-tion in the area 26a, in the trend sample area 26c, and in the histogram area 26b. Further, all storage locations in the minimum rate location of the trend data area 26c are set to a maximum value to sirnplify the steps of the programming required to determine the subsequent minimum heartbeat rate~ Further, a count is stored to be counted down by the subsequent occurrences of the sample clock and upon counting down to zero, that corresponding E~G
:
~ - _33~ '7S~
sample is stored within the designatecl loca~ion of area ~6a.
A variable named XCMODE, located in RAM ~ , is set to "1" to indicate to block 612 that the system is in monitor mode.
Thus the MONITOR$SERVICE routine 616 will be called to pro-vide the monitor mode controller with appropriate real -tirne services, such as timing and QRS detection, on each positive-going transition of the sample clock. A rount to determine the length of the trend interval in terms of a selected num-ber of sample clock signals is provided to be counted down upon the occurrence o~ each clock sample to determine at the "0" count a five-minute interval, for example. In addition, a lock out time is stored to provide a delay before a flag can be set by MNTRM to effect the permanent storage of data within a buffer of the area 26a.
15 ; After storage of these and other variables, the process moves through loop entry label 506 to the decision step 508, wh:ich determines whether the RUN$FLAG h-as been set true or false. As indicated above, the RUN$FLAG is set false if the battery voltage is determined to be low, the connector J4 of the ECG amplifier 18 is disconnected, the trend storage area 26c, or the histogram storage section 26b is filled, or the pointer to designate the buffer within area 26a indicates that all buffers are already full. If the RUN$FL~G is set false, the program moves through step 520 wherein the data O
in the current trend sample or interval is calcula-ted to pro-vide an average based upon the previously received R-R inter-vals. Thereafter the process is transferred to the standby mode controller 208 where commands are given to the power supply to deenergize all elements of the system except the 30 RAM 26 and associated chip select logic to continue the stor-age of the previously recorded data at reduced battery drain.
If on the other hand in step 508, the RUN$FhAG is set true, i.e., the system is in a functional condition to receive, process, and store FCG signals, the process moves to step 510 to check whether the mark button 84 has been -3~ 7~
pressed, and if pressed, step 512 stores an event marker in an auxiliary history array wi-thin the RAM 26 indicative o~
which sample or interval in whlch the mark bu-tton 84 was pressed. Thereafter, after step 512 or if the decision block 510 indicates that the mark button was not pressed, the process moves to step 514 to determine whether the R$FLAG was set true by th~ execution of the R-wave sensing portion of the MO~ITOR$-SERVICE routine, as will be described with respect to FIGURE 16. If yes, the process moves to routine 700 as will be d~esæribed below in detail with respect to FIGURE 10. In rout~ 700, the data secured by the execution of the MONIT~R$-SERVICE routine 616, as shown in FIGURE 7 and in particular the R-wave sensing routlne called thereby, is used to reset the R$PLAG, to process the R$WAVE$TYPE data indicative of the presence of con-taminating noise as stored within a designated area of the RAM 26 and to operate on the R-R interval stored within one of the buEfers of RAM 26. After either the routine 700 has been executed or decision step 714 has indicated the R$FLAG to be set false, the process moves to step 518, wherein the EL~PSED$TIME within a trend sample interval is compared with respect to that value END$0F$TSI as stored within area 26d to determine whether the trend sample interval is over, e.g., whether 5 minutes has expired. ELAPSED$TIME is stored within a counter formed within area 26d of the RAM 26 and is incremented upon the occurrence of the sample clock. ~.f the interval is over, i.e., yes is indicated by step 518, a routine 800, as will be explained with respect to FIGURE 9, summarizes the data stored in the completed trend sample inter-val to determine the average R-R interval and therefore the average heartbeat rate and thereafter directs the storage of the R-R interval data to the next location or cell within area 26b. After the decision step 518 has indicated that the trend sample interval has not expired or the completion of the routine 800, the process moves to step 516 wherein the process is halted until the next sample clock occurs and causes execution o~ the MONITOR$SERVICE routine which inputs and processes the next piece of the ECG da-ta as derived from the patient. Thereafter, the process compLetes its loop, reentering at label 506 to examine and process the next piece of FCG data.
The summarizing routine 800, as generally shown in FIGURE 8, ls more fully shown with respect to FIGURE 9 wherein the routine 800 is entered via the :Label 804 to initiate the summarizing process. More specifically, in step 806, the sum of R-R intervals within a single trend sample interval as stored within a storage location of the area 26d i5 divided by a count indicative of the number of R-R intervals sensed during a single trend sample interval. Thereafter, the average interval is inverted to provide the average rate of the patient's heart-beat during the trend sample interval. Next, in step 808, thepointer TSI$PTR is incremented by"l" to cause the R-R inter-val data or the next trend sample interval to be stored in the next cell or bin of the area 26c. Thereafter, in step 810, the current pointer TSI$PTR is compared with an indication of the maximum capacity of the area 26c and i~ in excess of the maximum capacity, the RUN$FLAG is set Ealse in step 812 whereby, as explained above with respect to FIGURE 8, step 508 transfers the process via step 520 to the standby mode controller 208.
If, as determined by step 810, there is further storage avail-able in area 26c or the RUN$FLAG has been set false by step812, step 814 clears the counters as formed within area 26d of the RAM 26 and used to count the number of in-tervals and to sum the intervals occurring during the new current trend sample interval. Thereafter in step 816, the end time indica-tor of-the current trend sample interval, END$0F$TSI, is reset to indicate the next end of trend sample interval by adding 300 seconds to the present value of the ELAPSED$TIME counter.
Thereafter, step 818 returns the process to the monitoring routine MNTRM as shown in FIGURE 8.
The processing and storing of the R-R data, as generally shown in routine 700 of FIGURE 8, is shown in greater .
..
S~
detail in FIGURE 10. The routine enters via label 704, as shown in FIGURE 10, to process and store data pertaining to the R-R interval associated with the QRS complex recently detected by the MONITOR$SERVICE rou-tine 616. In block 706, R$FLAG is set false to acknowledge cletection of a QRS com-plex by MONITOR$SERVICE 616. In adclition, block 706 obtains the variable R$WAVE$TYPE, indicative of whether the detected QRS complex is contaminated with noise, and a RR$INTERVAL, indicative of the measured R-R interval. Next, the value of RR$INTERVAL is placed into that location of the area 26d known as NEW$RR. Thereafter, the value of the CoMBo$RR is set equal to the sum of CURRENT$RR plu8 NEW$RR, thereby sum-ming the two most recently recorded values of the R-R intervals.
As will be explained later in detail, the values of NEW$RR corresponding to the most recently calculated R-R inter-val and of COM80$RR are used to determine whether to save a strip or set o~ the patient's ECG signal corresponding to detection of an anomaly, as will be explained with respect to FIGURE ll. It is necessary to classify R-wave data so the intervals associated with valid R-wave signals are processed while noise contaminated signals are ignored. In addition, in-tervals following a premature beat should be treated in a different manner than intervals occurring in a regular rhythm.
As shown in FIGURE 10, there is provided step 708 that evalu-ates a variable R$WAVE$TYPE. The strategy for chan~ing thevalue of R$WAVE$TYPE, in conjunction with block 708, provides the means for classifying each detected QRS complex. For purposes of illustration, assume that the QRS complexes are not contaminated by noise and that the system has just been turned on, i.e., R$WAVE$TYPE is setto "4". Consequently, when the very first QRS is detected, block 708 passes control to step 728, which does not use any R-R intervals information because that information ismeaningless when no prior interval has been detected. Since the interval associated with the next QRS
complex will have meaning, step 728 sets R$WAVE$TYPE to "3".
.75~
Consequently, the next uncontaminatecl complex will be pro-cessed by step 72~, wherein the de-tection of the first uncon-taminated QRS complex is used to initialize the system to store the subsequent uncontaminated signals. In ~tep 724, 5 the serial locations wherein the most recent values of the R R interval, namely NEW$RR, CURRENT$RR, PRIOR.~RR, and PRE$PRIOR~RR are shifted to place the most recent value of the R-R interval in the NEW$RR RAM location. Thereafter, the SET$REFRACTORY$TIME program is called to set the refrac-10 tory period as a function of the most recently detected inter-val between QRS complexes. Thercafter, the R$WAVE$TYPE is set to "2" in order to process the next QRS complex which will be considered to be a normal, uncontamina-ted QRS signal.
A~ter execution of step 724, the program 700 returns via step 15 726 to step 518 of the monitoriny program 500.
Upon the occurrence of detection of the next QRS
complex, as indicated by the se-tting of the R~FLAG signal, the process returns to the subroutine 700 wherein, since R$WAVE$TYPE has been set equal to "2", step 708 directs the 20 program to step 722 wherein an acceptable QRS complex is stored as a regular rhythm or premature signal. The SET$-REFR~CTORY$TIME subroutine is executed for setting the refractory time as a function of the R-R interval, and there-after the UPDATE$DELTA subroutine is called to calculate and 25 store the difference between successive R-R intervals in the delta or difference histogram in area 26b of the R~M 26.
Thereafter, a CLASSIFY$AND$STORE subroutine, as shown in FIGURE 11, is executed to determine whether the detected, un-contaminated QRS is part of a regular rhythm or is a premature 30 beat. If part of a regular rhythm, the R$WAVE$TYPE is left at "2", whereas if the QRS complex occurs early or prematurely, the R$WAVE$TYPE is set equal to "1". The regular rhythm and premature beats w:ill be appropriately processed and stored, as will be explained in conjunction with FIGURE 11. Thereafter, 35 the various locations for receiving and storing the R-R intervals -3~ 75i~ ~
are updated with the most recent value of the R-R interval being stored in -the NEW$RR location. After completion of step 722, the subroutine 700 e~its via step 726 to step 518 of the monitoring program 500.
Upon the detection of the next QRS complex after 5 .the setting of the R$WAVE$TYPE equal to "1", step 70~,upon sensing the "1" state,transfers control to step 720 wherein the QRS complex that has been preceded by a premature beat is processed. Such a beat is typically known as a compensatory beat and such a beat is n stored withi.n the trend area 26c of the RAM 26. However, the difference between successive R-R intervals is calculated and the UPDATE$DELTA routine ls called to store the calculated difference within the IDH
array of RAM area 26b. In addition, the refractory period is set by the SET$REFR~CTORY$TIME subroutine as a function of the last ~,alculated QRS interval. Thereafter, the R$WAVE$T~PE
is set equal to "2" to condition the ACCEPTABLE routine to receive the subsequent, normal QRS complex. In addition, the areas of the RAM 26 for receiving the previously calculated and stored values'o~ the R-R interval are updated with t~e most recent value of the R-R interval being stored in the NEW$RR location.
In the instance that the MONITOR$SERVICE routine 616 determines that the signal is noise contaminated, MONITOR$-SERVICE sets R$WAVE$TYPE to "0", whereby step 708 passes con-trol to step 718 wherein the newly measured R-R interval is not stored because it is contaminated. However, R$WAVE$TYPE
is set to "2" to permit initialization . of the next uncontami-nated QRS complex.
The ACCEPTABLE routine 722, as shown generally in FIG~RE 10, is described in detail with respect to FIGURE 11, for processing the patient's ECG signal and for storing data that has been found to be a valid and acceptable R-wave. The ACCEPTABLE routine 722 begins with step 730, wherein the SET$-REFRACTORY$TIME subroutine is called to set the refractory period, wherein tl~e system 10 is disabled from sensing further _39 ~ ~175~0~
heart activity or signals placed upon the input leads for that period after the occurrence of the R~wave. Typically, the refractory period for a patient havlng a heart rate of 75 BPM
is in the order of 300 to 400 ms. 'rhe refractory period is variably set by the SET$REFRACTORY$'rIME subroutine as a func-tion of the previously determined R-R interval as stored within the NEW$RR location within a rotating buffer of area 26d oE
the RAM 26. As generally described above, this rotating buffer includes four locations wherein four consecutive values of the most recently determined values of t:he R-R interval are stored, in order, in the locations NEW$RR, CURRENT$RR, PRIOR$RR, and PRE$PRIOR$RR. ~s a new value of the R-R interval is calculated or selected, as will be explained with respect to FIGURE 16, it is first stored in the NEW$RR location of the noted rotating 15 <buffer, and the old values of the R-R in-tervals are transferred 'to the next locations. The SET$REFRACTORY$TIME subroutine selects that value of the R-R interval located in the NEW$RR
location and, using the following expression, REFRACTORY =
KQT (NEW$RR ~27)/60, determines the length of the refractory period in terms of sample clock counts as generated by the clock 24. Thereafter in step 730, the subroutine UPDATE$DELTA
i5 called for determining the difference between adjacent R-R
intervals by subtracting the value stored in the PRIOR$RR loca-~tion from that stored in the CURRENT$RR location. The calcu-lated value of the difference between adjacent R-R intervals is used to define a pointer to a bin or cell within the inter-val difference histogram array of area 26b of the RAM 26 and that bin is thereafter incremented by "1" to count the occur-rence of that difference between the CURRENT$RR and PRIOR$RR
intervals.
Decision block 732 is executed to determine whether a premature beat has occurred, based upon the most recent data indicative of the R-R intervals as stored within the NEW$RR, CU MENT$RR, PRIOR$RR, and PRE$PRIOR$RR locations of the noted rotating buffer. In particular, there are two types of premature ., ~ ~75~B
., , beats that are detected, a premature beat with compensatory pause and an interpolated beat; these types of beats are detected in that they are attri~utable to malfunctions of the ventricles and are considered to be more serious than premature beats arising due to malfunctions of the atria.
The occurrence of a premature beat with compensatory pause is illustrated in FIGURE 18A wherein there is shown a series of R-waves R0, Rl, R2, R3, and R4 with the R-wave R0 occur-ring first in time and the R-wave R4 occurring last ln time.
As illustrated, the R-wave R3 has occurred early in time, being shifted to the right as seen in FIGURE 18~ -towa~d R-wave R2; further, the space between R-waves R3 and R~ is greater than normal providing a compensatory pause so that the R-wave R4 occurs at approximately its normally expected 15 ;time. ~n interdigitated premature beat is illustrate~ in FIGURE 18C wherein a beat having R-wave R3 is inserted approx-imately midway between the beats corresponding to waves R4 and R2, noting that the interval between the R-waves R4 and R2 is approximately equal to the normallyoccurriny R-R inter-val. As will be explalned, the subroutine 732 detects ~hethera premature beat with compensatory pause or interdigitated premature beat has occurred. Premature beat data is processed and stored in a first manner by steps 736 through 742 whereas if no premature beat has occurred, the R-R interval is processed in a second manner by steps 748 through 764.
The determination of whether the heat is premature or not is made by examining the values as stored within the locations NEW$RR, CURRENT$RR, PRIOR$RR, and PRE$PRIOR$RR o~
the noted rotating buffer in th~ following manner. Sub-routine 732 determines whether a first condition is met, i.e.,whether the R-R interval as stored within the CURRENT$RR inter-val location is less than 75~ of that value as stored in the PRIOR$RR location; this comparison can be visualized by examining FIGURE 18B, wherein the interval between the R~ and R3 waves is less than 75 percent of the interval between the Rl and R2 waves. Next, to determine the existence of a com-pensatory pause, the value CO~BO$RR, indicative of the sum of the R-R intervals a.s stored within the NEW$RR and CURRENT$RR
locations, is comparcd with a value indicative of 175~ of the R-R interval as stored within the PRIOR$RR location. As shown in FIGURE 18B, the length between the R4 and R2 waves is compared to the length between the Rl and R2 waves, and if greater than 1.75 times the length between the Rl and R2 waves, and if the first condition is met, the decision block 73~ provides an indication that the beat is a premature beat with compensatory pause by transferring control to step 736.
Second and third tests are made to determine whether an interdigitated premature beat R3, as shown in FIGURE 18C, exists. In particular, the value COMsO$RR indicative of the sum of the values within the NEW$RR and the CURRENT$RR loca-tions is determined to be less than 1.25 tl.mes the value of the R-R interval as stored within the PRIOR$RR location~ As seen in FIGURE 18D, this indication compares the total length in time between the R2 wave and the R4 wave to the length betwean the Rl and R2 waves. Further, a third test is made of whether the values stored in the CoMBo$RR location is less than 1.25 of the value of the R-R interval stored within the PRE$PRIOR$RR location. In other words, the length between the R2 and R4 waves is compared with the length between the R0 and Rl waves to provide an indication of the stability of the heartbeat pattern; if the heartbeat pattern is very irregu-~
lar, the detect~d beat may not be a premature beat but an indi-cation of some other, more dangerous anomaly. If the first condition and second and third test results are positive, there is provided an indication by the decision step 732 that an interdigitated premature beat has heen detected and the process moves to step 736.
Step 736, shown in FIGURE 11, is the start of a pre-mature beat processing routine. Step 736 sets the R$WAVE$TYPE
: flag equal to "1", whereby the processed R-wave is noted as an anomaly; as a result, when the STORE$RR$INTERVAL$DATA routine 3S 700 of FIGURE 10 is again run, a branch to the PROCESS$ANOMALY
.. . .
-~2~
subroutine 720 will be executed whereb~ only the R-R interval data is stored and the system is prepared to receive the next R-wave as an acceptable R-wave. Next, step 738 looks to the location PB$HISTORY within area 26d of the RAM 26 where the number of premature beats for the current trend sample inter val is counted and recorded, to determine whether there is space left there for further incrementation. If space is left, the PB$HISTORY location is incremen-ted by one in step 740. In either event, the process moves -to step 742, wherein the routine WAVEFORM$STORAGE$MANAGER is called to initiate processes executed by the MONITOR$S:ERVICE routine that save a waveforrn sample containing the premature beat within one of the circulating buffers of area 26a of the R~M 26. In addition to initiating waveform storage, WAVEFORM$SToRAGE$MANAGER, step 742, implements a storag`e lockout system that prevents the waveform storage area 26a of the R~M from being filled up in a few minutes by a "run" of premature beats or other arrhythmias.
In particular, when WAVEFo~`~$SToRAGE$~ANAGER is called to store a waveform, it compares the current value of ELAPSED$TIME with the type of arrhythmias being saved. If the lockout period has not expired, WAVEFORM$STORAGE$MANAGER simply returns with-out initiating a sample save. If the lockout has expired, a sample save will be initiated and the lockout period will be initiated to prevent storage of other similar arrhythmias for 10 minutes by adding 600 seconds to the current time as taken from ELAPSED$TIM~ to determine that time when the storage of a sample of that particular arrhythmia waveform will be permitted. Thereafterr in step 744, the locationsofthe rotating buffer are advanced, whereby the R-X intervals as stored in the various indicated locations are set to the next later location and the latest calculated value of the R-R
interval is set in the NEW$RR location.
If the decision step 732 decides that the beat or R-wave under investigation is not premature, the process advances to step 748, which is the start of a routine that .
L~
processes non-prelllature beats. Step 7~8 computes the current heartbeat rate by inverting the value of the R-R interval stored within the CURRENr$RR
location and, further, the cells within the current bin of the trend sample area 26c are updated for the maximum/minimum rate trends. Ln particular, the cell locations where the maximum/minimum rate trends are stored, are com-pared with the current computed value of the heartbeat rate, and if greater or less, respectively, the corresponding bin location is updated with the new maximum or minimum rate. The determination of the maximum and minimwn rates of heartbeat provides a statistical indication of the regularity of the heartbeat and, as will be explainecl, will be displayed for the benefit of the physician. It is also contemplated within the teachings of this inven-tion that the diEferences between successive intervals of the peak heart activity signal or heartbeat, as are calculated to obtain the interval difference histogram, could also be used in calculations to determine the standard deviations of the interval differences and that such standard devia-tion could be determined for each trend sample interval and stored in an appropriate location in memory corresponding to that interval. Next in step 750, a portion of the recently selected or calculated value of the R-R inter-val stored in the CURRENT$RR location is added to that location known as RR$SUM within area 26d of the RAM 26. A portion of the R-R interval, as opposed to using the whole amount, is used to reduce the amount of storage space required for the RR~SUM location. As indicated above, at the end of a particular trend sample interval, the subroutine TSI$SUMMATION is called to calculate the average R-R interval by dividing the sum value of the R-R inter-vals as stored with the RR~SUM location by the number of samples taken.
Next, as shown in FIGURE 11, a determination is made of whether an anomaly other than a premature beat is occurring and in particular whether a tachycardia, a bradycardia, or a skipped beat is present, to set a series of flags whereby that .... .
~7~
particular sample of -the ECG siynal corresponding to the anomaly is stored within one of the circulating buffers of the area 26a of the RAM 26. First, in step 752, the most recently calculated value of the heartbeat rate is compared with that maximum rate above which there is an indication that an anomaly known as a tachycardia is occurring within the patient's heart. Further, the step 752 determines whether the rate is increasing by com-paring the values of the R-R intervals as stored wi-thin the CURRENT$RR and NEW$RR locations and iE the values stored in the MEW$RR location is equal to or greater than that stored within the CURRENT$RR location indicating that the rate has begun to decrease, then the process moves to step 754, wherein the subroutine WAVEFORM$STORAGE$MANAGER is called to set those flags whereby a strip of ECG samples indicating the tachycardia is placed within a rotating buffer of area 26a of RAM 26.
Illustratively, the selected maximum rate is set at 120 beats per minute. If the most recent value of the heartbeat rate is not above that maximum level, the subroutine moves to step 758, wherein the most recently calculated rate is compared with 20 respect to a minimum rate indicative of the occurrence of a bradycardia and if below the minimum, e.g., 40 BPM, step 760 calls the WAVEFoRM$SToRAGE$MANAGER subroutine to set those flags whereby a strip of the ECG data illustrating the brady-cardia, is stored within a rotating buffer of the RAM area 26a.
25 If not below the noted minimum value, the process moves to step 762, wherein it is determined whether a beat has been skipped. In particular, that value of the R-R interval as stored within the CURRENT$RR location is compared with 1.75 times that value of the R-R interval as stored within the lo 30 cation PRIOR$RR and if greater, there is an indication of a skipped beat whereby the process moves to step 764 to call the WAVEFOR~$STOR~GE$MA~ ER to set flags that cause that strip of the patient's ECG samples to be stored within one of the circulating buffers of area 26a of the RAM 26. After each of 35 the steps 754, 760, 762, and 764, step 756 increments the s--appropriate rate histogram cell and step 744 updates the values of the R-R intervals within the locations o the rotating buffer, before returning to the MNTRM program and in particular to step 518, as shown in FIGURE 8.
Referring now to FIGVRE 12, the MONITOR$S~RVICE
routine 616, as generally shown in FIGURE 7, will now be described in greater detail. First the SAMPLE$ECG$AND$DO$-TIMING routine 800 is called in response to the detection o~
the sample clock signals as input to the CPU 14; as will be explained in detail later with respect to FIGURE 13, a sample of the ECG signal is taken and processed before being stored.
Four such samples are stored and then averaged before being placed in a location ECG$BYTE. Further, the routine 800 determines whether an R-wave is present and, if so, sets ~he R$FLAG true, and further determines if the R-wave is noise contaminated or not; if the R-wave is noise contaminated, the R$WAVE$TYPE is set equal to "0". The SAMPLE$ECG$AND$D.O$TIMING
routine 800, as generally shown in FIGURE 12, is more fully explained with regard to FIGURES 13 to 17. In step 802, it is determined whether the fourth ECG sample has been taken by examining the CLOCK$COUNT and if "0", the corresponding ECG
sample is the fourth. In addition, step 802 determines whether there is space available to store the next EC~ sample in one of the nine rotating buffers within area 26a of the RAM 26. If it.
is the fourth sample and there is space available, the process moves to step 804; if not, the process returns via exit point 820 to the main program. In step 804, the average indication of the last four samples is stored within a location of one of the circulating buffers as identified by the pointer LOOP$PTR;
thereafter., the LOoP$PTR is incremented to select the next loca-tion in the rotating buffer~ Thereafter, in step 806, the process looks to see if the SAVE$ECG$FLAG has besn set true by WAVEFoRM$STORAGE$MANAGER as called from one of the steps 742, 754, 760, or 764 to indicate, respectivelyl an anomaly such as a tachycardia, bradycardia, or a skipped beat. If SAVE$ECG$FLAG
:
- .:
~6~
is set true, the process moves to step ~08 wherein the counter LOOP$REMAINING is coun-ted down to permit a given number, e.g., 60, of additional samples of the ECG signal to be stored within the rotating buffer after the anomaly has been detected.
In this regard, it is noted that a total of 360 ECG samples are disposed within one of the rota-ting buffers of the area 26a of the RAM 26. If a no decision is made in step 806, the subroutine 616 returns to the rnain program.
Step 810 determines whether the rotating buffer has been filled by the ECG data, delaying the execution of the further steps until the 60 samples of the patient's ECG sig~
nals occurring after the SAVE.~ECG flag is set true have been filled as decided by step 810. If filled, the process moves to step 812 wherein the starting/end pointer within the filled 15 ;rotating buffer is stored to permit access when it is desired to read out the data stored in that buffer. Further, step 812 sets the storage pointer to the first location of the next available circular buffer within the area 26a of the RAM 26.
In step 814, a decision is made as to whether there is a fur-ther rotating buffer avaïlable within the area 26a, and if no,the RUN$FLAG is set false whereby the MNTRM routine 500 is directed to transfer control to the standby routine 208. If there is a further rotating buffer available, as decided in step 814, step 816 loads the location LOOP$REMAINING with the predetermined count of the additional ECG samples, e.g., 60, to be stored after the detection of the anomaly, and there-after, the SAVE$ECG flag is set false to terminate the saving of the ECG samples in one of the rotating buffers. Thereafter, the process returns through exit 820 to execute that step of the monitor mode controller program 500 which was interrupted by the sample clock.
As indicated above with respect to FIGURE 7, the MONITOR$SERVICE routine is called in response to the occurrence of each of the sample clocks if the system 10, as shown in FIGURE 3, is disposed in its mode for monitoring, i.e., the -~7-preamplifier 18 is coupled to the data acquisition unit 12.
The SAMPLE$ECG$AND$DO$TIMING routine 800 takes samples of the ECG signal in response to the sample clock occurring at th~
rate of 240 Hz and determines whether there is present a valid R-wave, as will now be explained in grea-ter detail with respect to FIGURES 13 to 17. Referrirlg now to FIGURE 13, the subroutine 800 begins with a timing step 822, wherein the ECG LED 88, as shown in FIGURE 4C, is energized for a fixed period, e.g., 40 ms. corresponding to 24 counts OL the sample clock, in response to the detection of each R-wave; in par-ticular, 24 counts are loaded into a RAM location LED$TIMER
and is decremented until it is set equal to "0", when a command is issued to deenergize the LED 88. In addition, step 822 steps two counters within area 26d of the RAM 26 that serve to time two separate functions. First, the ELAPSED$TIME location is incremented each second and is used as a system -timer that is initiated at the beginning of the monitor or calibration mode; the ELAPSED$TIME variable is used to control the timing of the trend sample and,in addition, the timing of the lockout period in which further strips of the ECG signals may not be stored, as explained above with respect to the WAVEFoRM$SToRAGE$-MANAGER routine 742 of FIGURE 11. The second clock is formed by the RR$TIMER location and is used to time the R-R interval, i.e., that interval between successive, valid ~-waves; the initiation and termination of the RR$TIMER location will be explained below. Next in step 824, an INPUT$AND$FILTER$ECG
routine is called whereby a sample ECG signal is taken and stored in a our location rotating buffer that is incrernented each time a new ECG sample is obtained. The ECG data is fil-tered after a sample is taken by averaging the contents of thefour location buffer and storing the result in the location ECG$BYTE. Upon the occurrence of the next sample, the average ECG data stored in the ECG$BYTE location is trans-ferred to the PRIOR$ECG$BYTE location, the rotating buffer is updated, and a new average is stored in ECG$BYTE. ECG$BYTE
and PRIOR$ECG$BYTE will be used, in a manner to be explained, to determine whether a valid R-wave has been detected. Next, 7~
. .
in step 826, the process examines the current count of the RR$TIMER to determine whether the refractory period i5 over and in particular compares the current count of the RR$TIMER
to the refractory period determined by the SET$REFRACTORY$TIME
routine, as explained above. If the refractory period is over as determined by step 826, the SEGMENT$HUN'rER routine 900, as will be described more ully with respect to FIGURE 14, is called to determine the existence of an R-wave segment. After the execution of the SEGMENT$HUNTER routine 900 or there has been indication that the refractory period is not yet over as detenmined by step 826, step 828 makes a decision as to whether a possible R-wave segment has been ound; as will be explained in detail below with respect -to FIGURE 14, the SEGMEMT$HUNTER routine sets the SEGMENT$STATUS location equal to "l" or "2" if a valid segment has been found, or to "3" if a "runt" or short segment has been found; thus, if step 830 finds a "1", "2", or "3" within the SEGMENT$STATUS location, the process moves to the SEGMENT$ANALYST routine 1000 wherein the detected segments are compared to determine if a valid R-wave has been detected. After the routine 1000 has been executed or if the SEGMENT$STATUS has been found equal to "0", the process ~oves to step 830 wherein the SEGMENT$STATUS
location is set equal to "0" to prepare the process for the next ECG sample. Thereafter, the process exits via step 832 to complete either the MONITOR$SERVICE routine 616 or the CALIBRATION$SERVICE routine 614. In particular, if the system is in monitor mode, the process returns via step 832 to step 802, as shown in FIGURE 12.
The SEGMENT$HUNTER routine 900, as generally shown in FIGURE 13, is more fully explained with respect to FIGURE 14, wherein initially step 902 evaluates the HUNTER$MODE location of R~M 26 to determine the state of the SEGMENT$HUNTER routine 900;
initially, the HUNTE~$MODE location is set to "0" by the ini-tialization step 504 of the monitoring routine 500. When HUNTER5MODE is set to "0", the process proceeds to step 906 to .
.
., .
7 ~ Aj~
begin the process o~ detecting -the start of a po~ential R-wave segment. As ~hown in FIGURES 19, the QRS complex, of which the R-wave is shown to ~orm a positive-going peak, can be approximated by a series of segments. FIGURES l9A and B show examples of valid R-waves wherein such ECG signals have been represented as a series of three segments. As will be explained below, the existence of a valid R-wave is detected by measuring the time interval between segments, the length, slope, and magnitude oE segments, and the number of segments.
Initially, in step 906, the time of interval or space between two consecutive segments is measured and, if greater than 62.5 ms., a decision is made that any previously detected segments de~o~e.J
are part of a~ QRS complex or noise signal because th~ maxi.mum interval between two related signal segments has been exceeded.
Consequently, the process moves to step 916 wherein the SEGMENT$STATUS location is set equal to "3" to indicate that the maximum interval between two valid segments has been exceeded. If the maximum allowable space between two segments - has not timed out as decided by step 906, step 908 stores the current data in a segment start location of the RAM area 26d and initializes the timing of a period corresponding to the maximum length of a valid segment, e.g.l 95.8 ms. The current data includes the previous value of the average ECG signal as stored in the PRIOR$ECG$BYTE location, and the current value of time from the RR$TIMER location. Next step 910 determines whether there is a change of slope and if the change of slope is positive by comparing -the value stored in ECG$BYTE location and the PRIOR$ECG$BYTE location. If the first value is greater than the second value by a predetermined amount indicating a positive slope greater than a threshold valuel then step 912 sets the HUNTER$MODE location equal to "l" to direct the SEGMENT$HUNT~R routine 1000l as shown in FIGURE 16l to look for the end of that segment. If step 910 makes a "no" decision step 914 determines whether a segment with a negative slope is present by examining the ECG$BYTE and the PRIOR$ECG$BYTE
~ 50_ ~7~,~U ~
locations, and if the PRIOR$ECG$BYTE value is greater than that value stored in the EcG~syTE location by a prede~ermined amount, there is an indication that a beginning of segment has been found, and the process moves to step 918 wherein the HUNTER$MODE flag is set equal to "2" to direct the SEGMENT$-HUNTER routine 1000 to look for an end of that segment. After any of the steps 916, 912, or 918, the process returns to step 828 of the SAMPLE$ECG~AND$DO$TIMING routine 800.
Upon the further calliny of the SEGMENT$HUNTER routine 900 and either step 912 or 918 has set the HUNTER$MoDE flag equal to "1" or "2", step 902 will sense the particular flag state and direct the process to either of steps 922 or 928 to locate the end of a segment. As an illustrative example, assume that the staxt of a segment with positive slope was detected on a prior pass through SEGMENT$HUNTER 900 so khat HUNTER$MODE flag has been set to "1". Consequently, the evaluation step 902 transfers control to step 922 to locate the end of the segment with the positive slope. Firs-t, step 922 checks to see whether there has been a slope reversal or whether the segment duration limit,which was set in step 908, has timed out. I either there has been a slope reversal or the duration of a segment has timed out, the process moves to.
step 924 wherein the amplitude or magnitude of the segment is calculated in terms of its absolute value and thereafter the SEGMENT$END$HOUSEKEEPING subroutine, as will be further explained with respect to FIGURE 15, is executed, whereby the various counters or timers are rsinitialized to prepare for recalling the SEGMENT$HUNTER routine 900 to find a new segment.
In particular, the step 924 recalls the value of the PRIOR$-ECG$BYTE that was initially stored by step 908 at the.c:ommence-ment of detection of the segment and subtracts that value from the PRIOR$ECG$BYTE stored at the detection of the end of the segment to obtain in absolute terms the amplitude from the beginning to the end point of the ECG sample. After step 924 has been completed or step 922 has responded "no" to both 75~
inquiries, the SEGMENT$HUNTER routine 900 returns to process-ing the service procedure step 828.
Upon a subsequent execution of the SEGMENT$HVNTER
routine 900 wherein the ~UNTER$MODE is set equal to "2", step 902 directs the routine to step 928 wherein the end of a nega-tive slope is determined in a manner similar to that described above. Briefly, step 928 determines whether there has been a slope reversal by examining the PRIOR$ECG$BYTE and ECG$BYTE
locations of the rotating buffer and/or whether the segment duration limit has timed out. If either of these conditions is met, the process moves to step 930 wherein the absolute value of the m~gnitude or amplitude oP the segment is deter mined before calling the SEGMENT.~END$HOUSEKEEPING, as will be explained with respect to FIGURE 15. Thus, in the SEGMENT$-HUNTER routine 900, as explained above with respect to FIGURE14, the beginning and end of a segment as well as its amplitude are detected in preparation for executing the SEGMENT$ANALYST
routine 1000 wherein a plurality of such segments will be examined to determine whether the particular cornbination of segments are so detected makes up a valid R-wave.
Referring now to FIGURE lS, there is shown the SEGMENT$END$HOUSEKEEPING subroutine 930 wherein after the cal-culation of the amplitude of the segment by either step 924 or 930, the various counters and storage locations are initialized~
in preparation to identify and measure the parameters of the next segment. In particular, step 932 compares the measured values of the duration and magnitude of the detected segment with predetermined minimum values, for example, 15 units or counts of the D/A converter 34, and 16.7 ms. corresponding to four counts of the sample clock 24. If these minimum require-ments are exceeded, the process moves to step 934 wherein the value of HUNTER$MODE is transferred to SEGMENT$STATUS to be used, as will be explained, in the execution of the SEGMENT$-ANALYST routine 1000. If the minimum requirements are not met as decided by step 932, a further determination is made whether -52- ~ S ~ ~
the maximum in-terval between seyments, e.g., 62.5 ms. has elapsed since the end of the last segrnen~; in particular, step 938 compares the current value of the RR$TIMER with the SEGMENT$START$DEADLIME and, if greater, the process moves to step 940 whereln the SEGMENT$STATUS is set to "3" indicating a time out with no valid segment detected. After steps 934 and 940, and if step g38 answers in the negative, the sub-routine moves to step 936 wherein the HUNTER$MODE flay is set equal to "0" to prepare for the recalling of the SEGMENT$HUNTER
routine 900 to detect the next segment and in particular to detect the beginning of the next segment.
As shown in FIGURES l9A and B, a series o~ segments can represent valid R-waves. In particular, the QRS complex is defined, in accordance with this invention, by three seg-ments having a particular slope, amplitude, duration, andsequence. As shown generally in FIGU~E 13, the SEGMENT$HUNTER
routine 900 identifies an inclividual va].id segment by obtain-ing values of its duration, slope, and magnitude, and passes those values to the SEGMENT$ANALYST routine 1000, which stores these values in specific locations, examines the sequence of segments, classifies them as QRS signal or as noise, computes the R-R interval, and resets RR$TIMER. The execution of the SEGMENT$ANALYST routine 1000 will now be explained in more detail with respect to FIGURE 16. Initially r in step 1002, ANALYSIS$MODE is accessed to determine which of the "0", "1", or "2" values that is currently set in that location. In the initializing step 504, as shown in FIGURE 8, ANALYSIS~MODE
is set equal to "0" so that initially the process will branch to step 1006 wherein the first segment will be obtained and analyzed, as will now be discussed. Upon obtaining the data correspondinq to the first segment, step 1006 examines the SEGMENT$STATUS location to determine whether it is less than ~3~O As was described with respect to step 934 of FIGURE 15, SEGMENT$STATUS is set equal to "1" or "2" corresponding to detection of valid segments with positive or negative slopes, ~53~ ~'7~
respectively; if -the space between segments has timed out, the SEGMENT$STATUS flag was set equal to "3" by steps 916 or 940.
Thus, if the segment was found by the SEGMENT$HUNTER to be valid, step 1006 stores the segment data in the first segment 5 location within the RAM 26. ~n particular, the first segment data includes its magnitude, the time the segment began as recorded by the RR$TIME~, the amplitude at its peak as stored s in the PRIOR$ECG$BYTE location, and the time at the end of the segment as recorded in the RR$TIM~R. In addition, step 1008 10 changes the ANALYSIS$MODE value from "0" to "1" so khat upon the subsequent execution of the step 1002, the SEGMENT$~NAL~ST
routine 1000 moves to step 1012 to evaluate the second segment.
First, step 1012 determines whether SEGMENT$STAT~S is equal to "3", i.e., a time period in excess of that maximum period 15 corresponding to 62.5 ms. has timed out since the end of the first segment and, if so, step 101~ calls the TREAT$AS$NOISE
subroutine 1034 wherebyl as will be explained later with regard to FIGURE 17, the various storage locations, timers, and counters are reset to erase data correspondiny to the first 20 segment to prepare the SEGMENT$ANALYST to receive and analyze the next segment data as a first segment. When step 1012 detects a SEGMENT$STATUS of "3", it indicates that a single segment, as shown in FIGURE 19C, has been detected but a second segment has not occurred within the acceptable time 25 limit; therefore, no valid R-wave has been detected.
~owever, if step 1012 indicates that the status of the second segment is either a "1" or a "2", i.e., not a "3", the process moves to step 1016 wherein a determination is made of whether the first and second segments have the same slope;
30 in particular, step 1016 compares the SEGMENT$STATUS locations of the first and second segments, and if the same, i.e., both segments have the same slope,the process moves to step 1018 wherein the data corresponding to the first and second segments are merged with each other, thus assuming that a large single 35 segment was interrupted by noise or cardiac conduction - 5~ -abnormality and -that only a single segment has been detected.
In particular, the starting point of the first segment portion is retained, whereas the termination point of the second sey-ment portion is used as the termina-ting point of the combined first segment. The magnitude of the! combined first segment is taken as the sum of the previously determined magnitudes of the first and second segment portions. Further, the ANALYSIS$MODE
flag is left as "1" so that upon the reexecution oE the SEG-~IENT$ANALYST routine 1000, the second segment will be obtained and anal~zed. On the other hand, iE step 1016 determines -that the slopes o~ the Eirst and seconcl seymen-ts are dif~erent, the identifying data of the seconcl segment in terms o~ starting and stopping points and magnitude are stored in that location of the RAM 26d for the second segment data; thereafter, the ~NALYSIS$-MODE flag is set equal to "2" to prepare the SEGMENT$ANALYST
routine 1000 to receive and analyze data corresponding to the third segment.
Upon the third reexecution of the SEGME~T&ANALYST rou-tine 1000 with ANAL~SIS$MODE set equal to "2", step 1002 trans-fers the routine 1000 to step 1022, so that the data correspond-ing to the third segment can be received and analyzed. Step 1022 compares the slope of the current segment with the slope of the previous segment. If the slopes of the successive seg-ments are determined to be the same, step 1024 assumes that the second segment was interrupted and the data corresponding to the current segment is merged into that data of the second segment, i.e., the starting point is taken as that o the second seg-ment, the terminating point is taken as that of the subsequent or current segment, and the amplitude is obtained by summing the amplitudes of the prior and current segment portions. Step 1024 does not change ANALYSIS$MODE from its current value of "2", and thereafter the process returns to continue the service routine at step 830. If the slopes dif~er, step 1026 stores the current data including starting and stopping points and magnitude in the area 26d of the RAM 26 corresponding to data for the third seg-ment.
` _55~
Thereafter, the ANALYSIS$MODE is set equal to "0" to prepare the SEGMENT$AN~LYST routine 1000 to receive and analyze the next sequence of segments.
Thereaf-ter, step 1028 initiates an evaluation of the stcred data of the three segments to determine whether a valid or invalid R-wave has been detected. First, step 1023 determines whether the magnitude of the firs-t segment is larger than that of the third segment by comparing the values of magnitude as stored within the assigned locations to the first and third segments. If the first request is greal:er, the case shown in FIGURE l9a, the first two segments, i.~., from point 1 to point 2 and from point 3 to point 4, are recognized as forming the outline of the R-wave, whereby the R-R interval is computed, the RR$TIMER is reset, and the QS
duration is computed. ~n this regard, it is unders-tood that the data for identifying all three segments is obtained at a point in time after the detection and analysis of the segments;
therefore, the process of analysis is made by determining when the peak of the R-wave occurred, and in case one, as shown in . _ FIGURE l9A, the peak occurs at the end of the first segment and the R~R interval is determined by examining the value of the RR$TIMER at the end of the first segment. In similar fashion, the QS duration is taken as the difference between the beginning of the first segment and the end of the second segment. Further, it is now necessary to reset the RR$TIM~R
to begin the timing of the next R-R interval. To this end, the RR$TIMER is reset not to zero but to a time corresponding to the interval between the end of the first segment and the end of the ~hird segment. On the other hand, if the first segment is not larger than the third segment corresponding to a second case, as shown in FIGURE 19B, the last two segments, i.e., that second segment beginning at point 3 and ending at point 4 and that third segment beginning at point 5 and ending at point 6, are selected as the outline of the R-wave, the R-R interval and QS duration are set accordingly, and the .
` -56~ S ~
RR$TIM~R is reset accordingly. In particular, the peak of the R-wave is selected as the end o~ the se~cond segment to thereby define the R R interval as the value of the R~$TIMER
at the end of the second segment. Further, the QS duration is thereby defined as -the difference between the values of the ~RR$TIMER -taken at the end of the third segment and -the begin-ning of the second segment. The RR$TIMER is set to begin its timing at the beginning of the third segment; more particularly, the RR$TIMER is reset at the end of the third segment to a time corresponding to the length of the third segment to reflect the actual time at the resetting of the RR$TIMER whereby the subsequent R-R interval may be measured. After each of steps 1030 and 1032, a further check is made by step 1033 to determine whe-ther the measured R-wave passes further validity 15 ;tests; in particular, it is determined that the Q5 duration is less than 221 ms. and that the determined R-R interval is greater than 242 ms. or 58 counts of the sample clock. It is also contemplated within the teachings of this invention that the average R-R interval, as determined for the corresponding trend sample interval, may be compared with a given limit period to identify the existence of a heart anomaly. If within these limits as determined by step 1033, step 1036 sets the R$FLAG true to indicate detection of the occurrence of a valid R-wave. Thereafter, the ECG LED is turned on for an interval of 83.3 ms. by setting the LED$TIMER for a corre-sponding period. Then the process continues with the block 830 of the service routine. If the parameters of the detected R-wave do not fall within the noted limits step 1032 calls, in step 1034, the TREAT$AS$NOISE subroutine, as will be explained with respect to FIGURE 17.
If the three segments do not occur within a given interval of each other as determined by step 1012 or the QS
duration and the R-R interval are not within the predetermined limits as determined by step 1032, the TREAT$AS$NOISE routine 1034 is called, as will be explained with regard to FIGURE 17.
~ _57~ 5~3 First, in step 1038, the RR$TIMER is reset to "0" and the ANALYSIS$MODE is set to "0" to prepare the SEGMENT$AN~LYST
routine 1000 to receive and analyze data corresponding to the first segment of a new complex. Thereafter, step 1040 determines whether R$WAVE$TYPE is greater than "2", and if yes, the routine resets the R$WAVE$11YPE to "4" insuring initialization during the STORE$RR$INTERVAI$DATA subroutine 700, as generally shown in FIGURE 8 and in more detail in FIGURE 10. If the R-wave is less than or equal to "2", indicative of complete initialization, the R$WAVE$TYPE is set equal to "0" to insure that the nex1: R-R interval is ignored because it is noise contaminated. After either of steps 1048 or 1042, step 1044 determines whether the system is in its monitor mode by checking the XCMODE and, if yes, the LED 88 15; is flashed for a period o 41.6 ms. to provide an indication to the operator that noise is being detected; in this regard, this length or duration for flashing the LED 88 is about hal~
the period as would be displayed for energizing the LED 88 in response to detection of a valid R-wave. I~ the system is not in the monitor mode as determined by s~ep 1044, the system is immediately returned to continue the execution of the SEGMENT$ANALYST routine without flashing the LED 88.
Claims (17)
PROPERTY OR PRIVILEGE IS CLAIMED ARE DEFINED AS FOLLOWS:
1. Apparatus for monitoring and storing electrical sig-nals indicative of heart activity including a series of heart-beats, said apparatus comprising: (a) means for sampling a patient's heart activity to provide a sequence of sampled heart signals at a rate sufficient to provide a plurality of sampled heart signals of one heartbeat and comparing one sampled heart signal with a subsequent heart signal of said one heartbeat to provide a heartbeat signal indicative of the occurrence of a valid peak of said one heartbeat, if said one sampled heart sig-nal has a predetermined amplitude relationship to said subse-quent sampled heart signal; (b) memory means including a plural-ity of storage locations, said locations for storing correspond-ing heartbeat signals, and (c) means responsive to the provision of said heartbeat signal for evaluating a sequence of said heartbeat signals as stored in said plurality of locations to determine whether the patient's activity is rhythmic, and if so for providing a manifestation of rhythmic heart activity and if not, for providing a manifestation of disrhythmic heart acti-vity.
2. Monitoring and storing apparatus as claimed in claim 1, wherein said memory means includes a second plurality of storage locations, and there is further included means res-ponsive to said heartbeat signal for examining the stored heart-beat signals and providing statistical characteristic of the patient's heart activity and for addressing a selected location of said second plurality in accordance with said statistical characteristic.
3. The monitoring and storing apparatus as claimed in claim 2, wherein said examining means comprises means for com-puting the intervals between adjacent heartbeats.
4. Monitoring and storing apparatus as claimed in claim 3, wherein each of said storage locations of said second plurality stores a count indicating the number of times a rate of the heartbeats occur within a certain range, and said ad-dressing means includes means responsive to the computer intervals for determining the rates at which the heartbeats are occurring, and said addressing means includes means responsive to the determined rate for incrementing the count as stored within a location of said second plurality dependent upon the determined rate.
5. Monitoring and storing apparatus as claimed in claim 3, wherein said addressing means includes means for deter-mining the difference between successive intervals, each storage location of said second plurality for storing a count indicating the number of times that a particular range of differences be-tween successive intervals has occurred during the monitoring period, and means responsive to the difference for addressing and incrementing the count within one of said storage locations of said second plurality in accordance with the difference.
6. Monitoring and storing apparatus as claimed in claim 3, wherein said apparatus monitors the heart activity for a monitoring period comprising a plurality of trend sample in-tervals, each of said storage locations of said second plurality corresponds to one of the plurality of the trend sample inter-vals for storing a data characteristic of the heart activity over the prolonged monitoring period; said addressing means in-cludes: (a) means responsive to the computed intervals for cal-culating the rate of the heartbeats; (b) means for determining the statistical characteristic of the rate of the heartbeats during each of the aforementioned trend sample intervals; and (c) means for storing the previously determined statistical characteristic in a first portion of a corresponding location of said second plurality.
7. Monitoring and storing apparatus as claimed in claim 6, wherein said statistical characteristic of the rate comprises the maximum heartbeat rate, the average heartbeat rate, and the minimum heartbeat rate during each trend sample interval.
8. Monitoring and storing apparatus as claimed in claim 7, wherein said receiving and storing means samples the heart activity signals to store heart signal samples in said first area; and means for adding successively the values indicative of the calculated rates in the location of said second area corresponding to the current trend sample interval, and means for calculating at the end the current trend sample interval the average heart rate occurring during the current trend sample interval by dividing the sum of the heart rates by the number of heart signal samples taken during the current trend sample interval.
9. The monitoring and storing apparatus as claimed in claim 2, wherein said apparatus monitors the heart activity for a prolonged monitoring period comprising a plurality of conse-cutive trend sample intervals, and each of said second plurality of storage locations corresponds to one of said trend sample in-tervals.
10. Monitoring and storing apparatus as claimed in claim 9, wherein each location of said second plurality includes a portion for storing a count indicative of the number of dis-rhythmic beats occurring during the corresponding trend sample interval, said addressing means includes means responsive to said disrhythmic manifestation for addressing a storage location of said second plurality corresponding to the current trend sample interval and for incrementing the count stored in said portion of that addressed storage location.
11. Monitoring and storing apparatus as claimed in claim 10, wherein each location of said second plurality of lo-cations includes a second portion for storing a statistical characteristic of the heartbeat as occurred during the corres-ponding trend sample interval, and there is further included means responsive to the computed interval for determining a sta-tistical characteristic of the heartbeat, said addressing means responsive to the determined statistical characteristic for ad-dressing the location of said second plurality corresponding to the current trend sample interval and for storing within said second portion of the addressed location the determined statis-tical characteristic.
12. Monitoring and storing apparatus as claimed in claim 11, wherein the statistical characteristic of the heart-beat comprises the maximum heartbeat rate, the average heartbeat rate and the minimum heartbeat rate, and said determining means computes the rate of the heartbeat.
13. Monitoring and storing apparatus as claimed in claim 11, wherein the second area of said memory means comprises a second plurality of locations, each location of said second plurality for storing a count corresponding to a range of differences between successive intervals between consecutive heartbeats, said addressing means comprising means responsive to the difference between successive intervals for addressing a corresponding location of said second plurality and for incre-menting the stored count in the addressed location of said second plurality.
14. Monitoring and storing apparatus as claimed in claim 13, wherein said addressing means comprises means respon-sive to said disrhythmic manifestation for setting a flag and means responsive to the flag for inhibiting said addressing means from storing the difference between successive intervals within the addressed storage location of said second plurality but permitting said addressing means for storing the determined statistical characteristic.
15. Monitoring and storing apparatus as claimed in claim 14, wherein said addressing means comprises means respon-sive to next one of said heartbeat signals after the provision of said disrhythmic manifestation for defeating said inhibiting means and removing the flag, whereby said addressing means is prepared for storing the current interval difference in a selected location of said first plurality.
16. Monitoring and storing apparatus as claimed in claim 2, wherein said addressing means includes means responsive to said disrhythmic manifestation for inhibiting the addressing and storing of invalid heart activity signal characteristics.
17. Monitoring and storing apparatus as claimed in claim 16, wherein said inhibiting means removes said manifesta-tion after the occurrence of the next one of said heartbeat sig-nals.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA000442114A CA1175108A (en) | 1980-01-23 | 1983-11-28 | Apparatus for monitoring and utilizing a data processor |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11459580A | 1980-01-23 | 1980-01-23 | |
US114,595 | 1980-01-23 | ||
CA000369045A CA1164954A (en) | 1980-01-23 | 1981-01-22 | Apparatus for monitoring and storing utilizing a data processor |
CA000442114A CA1175108A (en) | 1980-01-23 | 1983-11-28 | Apparatus for monitoring and utilizing a data processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000369045A Division CA1164954A (en) | 1980-01-23 | 1981-01-22 | Apparatus for monitoring and storing utilizing a data processor |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1175108A true CA1175108A (en) | 1984-09-25 |
Family
ID=27166945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000442114A Expired CA1175108A (en) | 1980-01-23 | 1983-11-28 | Apparatus for monitoring and utilizing a data processor |
Country Status (1)
Country | Link |
---|---|
CA (1) | CA1175108A (en) |
-
1983
- 1983-11-28 CA CA000442114A patent/CA1175108A/en not_active Expired
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4364397A (en) | Apparatus for monitoring the rhythm of a patient's heartbeat | |
US4417306A (en) | Apparatus for monitoring and storing utilizing a data processor | |
US4360030A (en) | Apparatus for monitoring and storing a variety of heart activity signals | |
EP1322223B1 (en) | Method and system for detection of cardiac arrhythmia | |
US6871089B2 (en) | Portable ECG monitor and method for atrial fibrillation detection | |
US5720771A (en) | Method and apparatus for monitoring physiological data from an implantable medical device | |
EP1304072B1 (en) | Method and apparatus for the serial comparison of electrocardiograms | |
CA2054609C (en) | Device for detecting abnormal heart muscle electrical activity | |
US6438411B1 (en) | Digital ECG detection system | |
US5404880A (en) | Scatter diagram analysis system and method for discriminating ventricular tachyarrhythmias | |
US6324423B1 (en) | Quantitative method and apparatus for measuring QT intervals from ambulatory electrocardiographic recordings | |
US5954666A (en) | System for analyzing specific portions of cardiac waveforms | |
US4367753A (en) | Apparatus for monitoring and storing heartbeats of a patient | |
EP0831740A1 (en) | Methods and apparatus for storing intracardiac electrograms | |
CA1164954A (en) | Apparatus for monitoring and storing utilizing a data processor | |
Moss et al. | ISHNE Guidelines for Electrocardiographic Evaluation of Drug‐related QT Prolongation and Other Alterations in Ventricular Repolarization: Task Force Summary: A Report of the Task Force of the International Society for Holter and Noninvasive Electrocardiology (ISHNE), Committee on Ventricular Repolarization | |
EP1330181B1 (en) | Lv ectopic density trending | |
Weisner et al. | A compact, microprocessor-based ECG ST-segment analyzer for the operating room | |
CA1175108A (en) | Apparatus for monitoring and utilizing a data processor | |
US3946725A (en) | Method for controlling the level of anaesthesia in surgery and apparatus for effecting same | |
CA1177539A (en) | Apparatus for monitoring and utilizing a data processor | |
CA1103315A (en) | Apparatus for detecting arrhythmias | |
CA1177898A (en) | Apparatus for monitoring and utilizing a data processor | |
CA1138531A (en) | Cardiac arrhythmia detector and recorder | |
Coleman et al. | Microprocessor detection of electrocardiogram R-waves |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |