An initial set of beat labels was produced by a slope-sensitive QRS detector, which marked each detected event as a normal beat. Each two-hour, two-channel ECG record was printed out in full disclosure format, each page two minutes in duration, with the addition of QRS detection marks, trend plots of ST segment displacement and T-wave amplitude (measured for each beat), and boxes for checking annotation operations. For each record, two cardiologists (neither of whom was a member of the research group which had submitted the record) were given copies of the full-disclosure printout, trend plots of mean heart rate and ST-T parameters at 10-second intervals, and record-specific transparent plastic rulers for measuring time intervals and ECG signal displacements. A heart rate scale and a two-channel reference QRST complex (taken from the first 30 seconds of each record) were printed on each ruler.
Working independently, the cardiologist-annotators visually checked the computer-generated beat labels on the full-disclosure printouts and manually corrected them, and inserted annotations indicating changes in ST and T morphology, rhythm, and signal quality. Annotations from the two cardiologists were compared and the differences were resolved by a cardiologist of the coordinating group. This method assumes that the third cardiologist is able to make a more reliable judgement since he knows both sets of annotations.
The cardiologists participating in the project jointly defined and followed a set of rules for locating ST episodes and T episodes (i.e., intervals during which the ECG exhibits significant ST segment or T-wave changes). To identify and annotate an ST episode, these criteria were applied:
To identify and annotate a T episode, similar criteria were applied:
These rules were applied to each of the two signals independently; for this reason, each ST and T change annotation indicates the signal to which it applies.
Each ST and T change annotation contains a text field which describes its significance. The text field contains characters which identify the episode type ('ST' or 'T'), the signal number ('0' or '1'), and the direction of the deviation ('+' or '-'; extreme T deviations are signified by '++' and '--'). The text field of an annotation which marks the beginning of an episode contains a '(' prefix. For an annotation which marks the end of an episode, there is a prefixed 'A' and an appended 3- or 4-digit decimal number which expresses the magnitude of the peak deviation in microvolts. An annotation which marks the end of an episode has a ')' appended to the end of its text field. For example, an episode of ST depression in signal 0 with a peak (absolute) deviation of 200 microvolts would be marked by three annotations, with text fields of '(ST0-', 'AST0-200', and 'ST0-)'.
In six records (e0161, e0509, e0601, e0611, e0613, and e0615), axis shifts resulting from positional change give the appearance of real ST or T changes. These axis shifts are annotated using comment annotations. The text fields of these annotations are constructed in the same way as for ST and T change annotations, except that lower-case characters are used in order to make it easier to distinguish these axis shift episodes from real ST or T change episodes. For example, an axis shift in signal 1 which gives the appearance of a peak T deviation of 350 microvolts would be marked by three annotations, with text fields of '(t1+', 'at1+350', and 't1+)'.
The following types of annotations appear in the European ST-T Database reference (.atr) annotation files. The Code column shows the symbols defined in ecgcodes.h, and the Mnemonic column indicates how these annotations are displayed by WFDB applications such as WAVE, WVIEW, and pschart.
|NORMAL|| [bullet]||Normal beat|
|ABERR||a||Aberrated atrial premature beat|
|NPC||J||Nodal (junctional) premature beat|
|SVPB||S||Supraventricular premature or ectopic beat (atrial or nodal)|
|PVC||V||Premature ventricular contraction|
|FUSION||F||Fusion of ventricular and normal beat|
|ARFCT|||||Isolated QRS-like artifact|
|RHYTHM||Rhythm change, specified by text field:|
|STCH||ST change, specified by text field:|
|TCH||T change, specified by text field:|
|NOTE||Comment annotation, specified by text field:|
|NOISE||Signal quality change: the first character ('c', 'n', or 'u')
indicates the quality of signal 0 (clean, noisy, or unreadable),
and the second character indicates the quality of signal 1.
The subtyp field of the annotation encodes these
As noted above, the expert annotators were given a clear plastic template on which had been printed a reference waveform. The position of this waveform was not recorded, however, and the original plastic templates no longer exist. The only available information about the choice of reference beat is that the waveform was taken from the first 30 seconds of the record being annotated. One may assume that the waveform was typical of those within the 30-second interval, and that if the amount of noise varied significantly within the interval, the reference was one of the cleaner waveforms.
As a practical matter for evaluation of an algorithm for automated ST analysis using this database, this question need not be an issue. Some of the patients represented in the database had prior myocardial infarctions with consequent fixed ST elevation or depression. The ST annotations in this database mark transient ST changes that are superimposed on any fixed elevation or depression. The important point is that this database's annotations provide samples not of the ST level function (the difference, for any given time, between the ECG amplitudes of the nearest beat during the ST segment and at the isoelectric point), but of the ST deviation function (the difference between the ST level function measured at any given time and during the first 30 seconds of the record). Put another way, the ST level function is the sum of the fixed elevation or depression (the reference ST level) and the transient changes in ST level (the ST deviation function).
To use this database to evaluate an ST analysis algorithm, the algorithm needs to estimate the ST deviation function, a task that requires determining its own reference ST level (using any desired method; a median of its ST level measurements made during the first 30 seconds is a commonly used approach). The algorithm's ST deviation function is the difference between its ST level function and its reference ST level. See epicmp for details on how to record an algorithm's ST deviation function in an annotation file, and how to use standard software to measure how well an algorithm's ST deviation measurements match those provided with the database.