the present invention alleviates the need for a professional to scan all of the data by hand , allowing fast navigation through a subject ecg signal . by way of overview , the present invention converts the subject ecg signal from voltages over time to an alphabet of symbols . each symbol corresponds to a known heart pattern . in order to automatically convert the ecg signal to a symbolic representation , the many algorithms published in the ecg literature are used . for example , to detect myocardial ischemia , a condition in which heart muscles do not receive enough oxygen , the algorithm in “ automatic detection of st - t complex changes on the ecg using filtered rms difference series : application to ambulatory ischemia monitoring ,” j . garcia , s . olmos and p . laguna , ieee transactions on biomedical engineering , vol . 47 , no . 9 , september 2000 , can be applied to the ecg signal . in the present invention , detectors are implemented for as many heart conditions as desired . currently , over 80 syndromes can be detected from ecg &# 39 ; s by cardiologists ( see “ abc of clinical electrocardiography ” by francis morrus , bmj publishing group , 01 - 2003 , isbn 0727915363 and “ ecgs by example ”, by jenkings and gerred , 1997 , ibsn 0443056978 ). for a number of these conditions , algorithms ( detectors ) have been published which automatically analyze the ecg and return either a binary “ yes / no ” decision as to whether the condition is present at time t or a confidence score describing how confident the algorithm is of detecting that signal . the aim of the present invention is not to detect abnormal heart conditions but to facilitate professionals &# 39 ; discovery of them in vast quantities of data . to this end , the present invention constructs a lattice over the ecg signal and uses the lattice to aid navigation through the data . a lattice is a directed graph ( left to right ) showing many possible alternative paths through the maze of hypotheses . the lattice consists of nodes , which correspond to points in time , and arcs , which correspond to transitions between nodes . the invention process 11 of constructing a lattice from an ecg signal is shown in fig1 . the steps are as follows . first , the subject ecg signal 15 is segmented into chunks 27 ( data segments ) by windowing step 100 . the length of each chunk 27 is arbitrary but should be sufficiently long such that the detection algorithms can make a decision for that chunk . feature extraction step 102 assists in determining boundaries of chunks 27 ( i . e ., chunk length ). example techniques for feature extraction include : detecting change in signal pattern , detecting change in overall signal amplitude and detecting change in frequency of 0 - line crossings . see “ abc of clinical electro cardiography ” by francis morrus cited above . chunks 27 can also potentially overlap in time . a typical chunk length might be fifteen minutes worth of data . the various heart condition detectors 12 ( mentioned previously ) or other classifiers are then applied to each chunk at step ( scoring module ) 110 . preferably each classifier / detector 12 is directed at detecting a respective specific heart condition given an input ecg signal . each classifier / detector 12 on output provides a number ( for example , simply 1 or 0 ) or score describing the likelihood of that particular heart condition being present in the chunk 27 . each detector 12 may also generate a confidence level or error rate of its score result . using the numerical results ( scores ) of the detectors 12 , an n × m lattice 112 is constructed where n is the number of chunks 27 and m is the number of heart conditions in the alphabet . the alphabet may include the “ normal ” condition . if more than one detector 12 is implemented for the same heart condition , these can be either included separately in the lattice 112 or their scores combined using voting or another combination technique . it may be necessary to normalize or weight the scores from the different classifiers 12 so they can be compared to each other . the weighting may be empirical or it can reflect prior beliefs about those conditions in the general population or specific to the patient according to his / her medical history . in a preferred embodiment , the lattice 112 initially contains one node per sample ( chunk 27 ) of the subject ecg signal 15 or sequence to be represented . the node is labeled by time ( or sequence order ). in practice , many nodes can be removed as uninteresting without loss of information . initial time arcs are created linking each node to its successor in time . the arcs can be explicitly represented or can remain implicit . additional arcs are created by scoring multiple classifiers or feature detectors 12 against the subject ecg signal 15 . these classifiers can be run in series or in parallel . each classifier 12 decides when a segment 27 of the subject signal 15 matches its internal model . when this happens , an arc is created , spanning the matched segment 27 , and labeled with the class or feature ( e . g ., “ atrial fibrillation ”, “ infarction ”, “ ischemia ”, etc .) that was detected . the label may also indicate level of confidence ( p = 0 . x ) of the feature detected as illustrated in fig1 . as such , the labels serve as helpful annotations for the medical professional . each path through the lattice 112 corresponds to an alternative segmentation of the ecg signal 15 . a time axis or other indication of time enables correspondence between the lattice 112 and the original ecg signal 15 . next , the generated lattice 112 is processed by process and display engine 114 in a variety of ways 403 , 405 , 407 ( fig4 ) to aid ecg analysis . first , a “ best path ” through the lattice 112 is determined using the viterbi algorithm ( step 403 ). this produces the most likely heart condition , including normal , for each chunk 27 . such could be used , for example , by a physician to show all chunks ( segments of subject ecg signal 15 ) which probably exhibit condition a . for infrequently occurring conditions , this would allow a professional to quickly “ zoom ” to ( filter and focus on ) the sections of the ecg readout 15 which exhibit a particular condition . the output of a viterbi search over the lattice 112 can also be used to visualize the ecg signal 15 . here , a different color is assigned to each heart condition in the alphabet and a timeline is displayed with each chunk 27 shown in the color of the more likely condition . again , this allows the professional to zoom to ( quickly see / view at a glance ) areas showing abnormal heartbeats ( step 407 ). the lattice 112 may be processed in yet more ways ( step 405 ). for example , digging deeper than simply the best path , the physician can ask a variety of quite complex queries . for example , he could ask to view all the chunks 27 with likelihood ( confidence p value ) of condition a greater than x and that of condition b greater than y . or to view chunks for which condition c has likelihood ( p value ) greater than z for n seconds . another type of possible search is for a sequence of events . for example , the physician could search for condition a , followed by conditions b and c . this is a standard type of search through a lattice 112 . it can be performed either by scanning through the lattice for a particular pattern or if it is known that for example three - condition sequences are commonly searched for , then an index of all possible three - condition sequences can be built and utilized . the full lattice 112 may also be used to construct another type of useful visualization of the data . here , the full grid is displayed as a 2 - d plot with the color of each point reflecting whether the number is large or small . for example , large numbers can be assigned red , small numbers blue and intermediate numbers are assigned colors between red and blue in the spectrum ( or vice versa ). the display is similar to a checkerboard pattern with red and orange sections indicating that a particular condition is present or likely to be present . a physician can again use this visualization to zoom to ( focus his attention to ) abnormal sections of the initial ecg signals 15 . in yet another embodiment , the invention system 11 is used to study correlations between ecg &# 39 ; s 15 collected from more than one patient . either the viterbi best path or the full lattice 112 can be used . to accomplish the foregoing , process and display engine 114 employs known techniques for selecting paths based on user specified criteria 405 and for sorting , color coding , highlighting display of , filtering , zooming , etc . paths in part or whole 407 . also , if a doctor has an ecg recording 15 that he cannot identify , he may search for this in the lattices of pre - recorded records . an example of this is shown in fig2 . here the query lattice 112 ( formed by the process 11 of fig1 from a patient &# 39 ; s ecg 15 ) is compared with a data store 31 of lattices and the closest matches 33 are returned . these matches may be further filtered by patient age , medical history , weight and the like . the closest match gives an initial or preliminary diagnosis for the subject patient &# 39 ; s ecg 15 . the data store 31 may be implemented as a database holding previously generated lattices 37 and corresponding ecg &# 39 ; s 39 that produced those lattices of various patients . the query engine 35 of the database management system then uses the current patient &# 39 ; s ( subject ) lattice 112 ( the “ query ” lattice ) as input . the query engine 35 determines the predefined lattices 37 that most closely match the input subject lattice 112 . the heart conditions associated with the closest matching predefined lattices 37 provide an analysis of the subject ecg 15 . further , instead of generating a lattice 112 , each ecg signal 15 may be converted to a “ signature ” vector . each component of the vector is the sum or another combination of the classifier 12 outputs for each chunk 27 . thus time information is thrown away but the ecg signal 15 is represented in a simple form ( the signature vector ). this would not allow zooming to important parts of the original ecg signal 15 but would however facilitate fast comparison between patient ecg &# 39 ; s and would speed diagnosis . also , some patients with a history of heart conditions may have permanently abnormal ecg &# 39 ; s ( due to permanent tissue damage ). for these patients , it may be desirable to discover only those portions of the ecg signal 15 which are significantly different from the usual abnormal state . in this case , invention apparatus 11 allows the professionals either to modify the thresholds and settings of the classifiers 12 or to completely ignore the output from some classifiers 12 . finally , although this disclosure has been written with indexing / visualization aims in mind , it is clear that a program which analyzes the lattice 112 in real time could be used to raise alarms of various syndromes . illustrated in fig3 a and 3 b is a computer system embodying the present invention . ecg apparatus 41 is connected to a patient ( subject ) 43 . readings ( signals ) 45 from the ecg apparatus 41 are input ( e . g ., downloaded or otherwise transmitted ) to computer system 47 implementing the present invention . in particular , computer system 47 ( i ) constructs a lattice 112 ′ ( including labels , annotations , etc .) corresponding to subject ecg signals 45 and ( ii ) provides display processing and querying of the lattice 112 ′ to assist the physician in navigating through and more pointedly ( in a focused and / or filtered manner ) visualizing the ecg data as described above in fig1 and 2 . as such , computer system 47 serves as a tool for assisting with the reading and analysis of ecg signals / data . as shown in fig3 b , each computer system 47 preferably contains system bus 79 , where a bus is a set of hardware lines used for data transfer among the components of a computer . bus 79 is essentially a shared conduit that connects different elements of a computer system ( e . g ., processor , disk storage , memory , input / output ports , network ports , etc .) that enables the transfer of information between the elements . attached to system bus 79 is i / o device interface 82 for connecting various input and output devices ( e . g ., displays , printers , speakers , etc .) to the computer system . subject ecg signals 45 are received through i / o device interface 82 . network interface 86 allows the computer system to connect to various other devices attached to a network . memory 90 provides volatile storage for computer software instructions ( e . g ., program routines 92 and data 94 ) used to implement an embodiment of the present invention . program routines 92 include invention process 11 , heart detector / classifiers 12 and query engine 35 and database subsystem for example of fig1 and 2 . data 94 includes the corpora 31 of stored lattices 37 and associated ecg signals 39 . disk storage 95 provides non - volatile storage for computer software instructions and data used to implement an embodiment of the present invention . central processor unit 84 is also attached to system bus 79 and provides for the execution of computer instructions . network interface 86 enables invention program ( routine ) 11 to be downloaded or uploaded across a network ( e . g ., local area network , wide area network or global network ). i / o device interface 82 enables invention process 11 to be ported between computers on diskette or other computer readable medium ( cd - rom , etc .). other transmission of process 11 in whole or in part between computers is in the purview of one skilled in the art . accordingly , invention process 11 may be run on a standalone computer , distributed across computer networks , or executed in a client - server fashion or other arrangement . while this invention has been particularly shown and described with references to preferred embodiments thereof , it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims . for example , the invention system may be applied to human or other subjects . also , restated , the present invention provides a method and system for indexing or annotating ecg signals ( readings ). the labels of the generated lattice 112 provide indications of heart conditions and levels of confidence of detected conditions . the ecg signal together ( either overlaid or otherwise correlated ) with these labels ( the lattice 112 ) provide the physician - user with an indexed or annotated version of the ecg .
computer method and apparatus for reading and analyzing ecg signals includes applying a plurality of heart condition detectors to a subject ecg signal . each detector produces a respective indication of likelihood of certain heart conditions existing in the subject . a lattice having annotations of the different detector heart conditions is formed from the detector indications . the lattice enables medical personnel to navigate through and hence more easily read the ecg signal data . the lattice effectively provides an indexed or annotated version of the subject ecg signal .