Apparatus and method for improvement of electrocardiogram visualization
Patent Information
- Application Number
- JP2024126109
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-08-01
- Filing Date
- 2024-08-01
- Publication Date
- 2025-02-14
Smart Images

Figure 2025022843000001_ABST
Abstract
Description
[Technical field]
[0001] The present invention relates generally to the field of transformed visual representations of electrocardiograms. In particular, the present invention is directed to an apparatus and method for improving the visual representation of an electrocardiogram. [Background technology]
[0002] Electrocardiography is a valuable tool for assessing cardiac function and diagnosing various cardiac diseases. Traditional methods for interpreting Electro Cardio Gram (ECG) signals involve manual analysis by trained healthcare professionals, which is time consuming and can be subject to inter-observer variability. There is a need for an automated system that can efficiently analyze ECG signals and assign an accurate diagnostic label to aid in timely and reliable cardiac disease diagnosis. Summary of the Invention [Means for solving the problem]
[0003] In one aspect, an apparatus for improving a visual representation of an electrocardiogram is disclosed. The apparatus includes at least one processor and a memory communicatively connected to the at least one processor. The memory instructs the processor to receive a plurality of electrocardiogram signals generated using at least one sensor of a plurality of sensors connected to a patient. The memory instructs the processor to receive at least one transformation matrix. The memory instructs the processor to transform the plurality of electrocardiogram signals into a cardiac vector as a function of the at least one transformation matrix. The memory instructs the processor to generate a vector electrocardiogram image as a function of the cardiac vector, the image including a representation of the cardiac vector in a three-dimensional (3D) space. The memory instructs the processor to assign at least one diagnostic label to a patient as a function of the vector electrocardiogram image.
[0004] In another aspect, a method for improving a visual representation of an electrocardiogram is disclosed. The method includes receiving, using at least one processor, a plurality of electrocardiogram signals generated using at least one sensor of a plurality of sensors connected to a patient. The method includes receiving, using at least one processor, at least one transformation matrix. The method includes transforming, using the at least one processor, the plurality of electrocardiogram signals into a cardiac vector as a function of the at least one transformation matrix. The method includes generating, using the at least one processor, a vector electrocardiogram image as a function of the cardiac vector, the vector electrocardiogram image including a representation of the cardiac vector in three-dimensional (3D) space. The method includes assigning, using the at least one processor, at least one diagnostic label to a patient as a function of the vector electrocardiogram image.
[0005] These and other aspects and features of the non-limiting embodiments of the present invention will become apparent to those of ordinary skill in the art upon review of the following description of specific non-limiting embodiments of the present invention in conjunction with the accompanying drawings.
[0006] For the purpose of illustrating the invention, the drawings show aspects of one or more embodiments of the invention. It should be understood, however, that the invention is not limited to the precise arrangements and instrumentalities shown in the drawings. [Brief description of the drawings]
[0007] [Figure 1] FIG. 1 is a block diagram illustrating an exemplary embodiment of an apparatus for improving the visual representation of an electrocardiogram. [Diagram 2] FIG. 2 is a block diagram illustrating an exemplary machine learning process. [Diagram 3] FIG. 3 is a block diagram illustrating an exemplary embodiment of a diagnostic database. [Figure 4] FIG. 4 illustrates an exemplary embodiment of a neural network. [Diagram 5]FIG. 5 illustrates an exemplary embodiment of a node of a neural network. [Figure 6] FIG. 6 illustrates an exemplary embodiment of a fuzzy set comparison. [Figure 7A] FIG. 7A illustrates an example visual representation of the transformed ECG data. [Figure 7B] FIG. 7B illustrates another example visual representation of transformed ECG data. [Figure 7C] FIG. 7C illustrates yet another example visual representation of the transformed ECG data. [Figure 8] FIG. 8 illustrates an exemplary embodiment of a vector electrocardiogram image. [Figure 9] FIG. 9 is a block diagram illustrating an exemplary method for comparing diagnostic processes. [Figure 10] FIG. 10 is a flow diagram illustrating an exemplary system for improving the visual representation of an electrocardiogram. [Figure 11] FIG. 11 is a block diagram illustrating a computing system that can be used to implement any one or more of the methodologies disclosed herein and any one or more portions thereof. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0008] The drawings are not necessarily to scale and may be illustrated by phantom lines, schematic representations, and partial views. In certain instances, details that are not necessary for understanding the embodiments or that would make other details difficult to grasp may be omitted.
[0009] At a high level, aspects of the disclosure are directed to an apparatus and method for improved visual representation of an electrocardiogram. The apparatus includes at least one processor and a memory communicatively connected to the at least one processor. The memory instructs the processor to receive a plurality of electrocardiogram signals from a patient and a patient profile. The memory instructs the processor to convert the plurality of electrocardiogram signals into cardiac vectors. The memory instructs the processor to generate a vector electrocardiogram image as a function of the cardiac vectors. The memory instructs the processor to assign at least one diagnostic label to the patient as a function of the vector electrocardiogram image and the patient profile. The memory instructs the processor to display the at least one diagnostic label using a display device. Exemplary embodiments illustrating aspects of the disclosure are described below in the context of several specific examples.
[0010] Referring now to FIG. 1, an exemplary embodiment of an apparatus 100 for improving the visual representation of an electrocardiogram is illustrated. The apparatus 100 includes a processor 104. The processor 104 may include any computing device as described in this disclosure, including, but not limited to, a microcontroller, a microprocessor, a digital signal processor (DSP), and / or a system on a chip (SoC) as described in this disclosure. The computing device may include, be included in, and / or communicate with a mobile device, such as a mobile phone or smartphone. The processor 104 may include a single computing device operating independently, or may include two or more computing devices operating in cooperation, in parallel, sequentially, etc. The two or more computing devices may be included in a single computing device or together in two or more computing devices. The processor 104 may interface with or communicate with one or more additional devices, as described in more detail below, via a network interface device. A network interface device may be utilized to connect the processor 104 to one or more of various networks and one or more devices. Examples of network interface devices include, but are not limited to, a network interface card (e.g., a mobile network interface card, a Local Area Network (LAN) card), a modem, and any combination thereof.Examples of networks include, but are not limited to, a wide area network (e.g., the Internet, a corporate network), a local area network (e.g., a network associated with an office, building, campus, or other relatively small geographic space), a telephone network, a data network associated with a telephone / voice provider (e.g., a mobile communications provider data and / or voice network), a direct connection between two computing devices, and any combination thereof. The network may employ wired and / or wireless communication modes. In general, any network topology may be used. Information (e.g., data, software, etc.) may be communicated between computers and / or computing devices. The processor 104 may include, but is not limited to, a computing device or a collection of computing devices at a first location and a second computing device or a collection of computing devices at a second location. The processor 104 may include one or more computing devices specialized for data storage, security, traffic distribution for load balancing, etc. The processor 104 may distribute one or more computing tasks, as described below, to the computing devices of the multiple computing devices, which may operate in parallel, serially, overlapping, or any other manner used to distribute tasks or memory among the computing devices. The processor 104 may be implemented using a "share nothing" architecture in which data is cached at the workers, which in some embodiments may enable scalability of the apparatus 100 and / or the computing devices.
[0011] With continued reference to FIG. 1, the processor 104 may be designed and / or configured to perform any method, method step, or sequence of method steps in any embodiment described in this disclosure in any order and with any degree of repetition. For example, the processor 104 may be configured to repeatedly perform a single step or sequence until a desired or commanded result is achieved. The repetition of a step or sequence of steps may be performed iteratively and / or recursively using the output of a previous iteration as input to a subsequent iteration, aggregating the inputs and / or outputs of the iterations to generate an aggregate result, decreasing or decrementing one or more variables, such as a global variable, and / or dividing a larger processing task into a set of smaller processing tasks that are addressed iteratively. The processor 104 may perform any step or sequence of steps as described in this disclosure in parallel, including, for example, performing a step two or more times simultaneously and / or substantially simultaneously using two or more parallel threads, processor cores, etc. The division of tasks among parallel threads and / or processes may be performed according to any protocol suitable for dividing tasks among iterations. Those skilled in the art will recognize upon reading this entire disclosure the various ways in which operations, sequences of operations, processing tasks, and / or data may be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0012] Continuing with reference to FIG. 1, the device 100 includes a memory. The memory is communicatively connected to the processor 104. The memory may contain instructions that configure the processor 104 to perform the tasks disclosed in this disclosure. As used in this disclosure, "communicatively connected" means connected, attached, or linked between two or more entities, allowing for the receipt and / or transmission of information therebetween. For example, but not limited to, the connection may be established between two or more components, circuits, devices, systems, apparatuses, etc., directly or indirectly, wired or wirelessly, allowing for the receipt and / or transmission of data and / or signals therebetween. The data and / or signals therebetween may include, but are not limited to, among others, electrical, electromagnetic, magnetic, visual, audio, radio, and microwave data and / or signals, and combinations thereof. The communication connection may be achieved, for example, but not limited to, through wired or wireless electronic, digital, or analog communication, directly or via one or more intervening devices or components. Additionally, a communicative connection may include electrically coupling or connecting at least one output of one device, component, or circuit to at least one input of another device, component, or circuit, such as, but not limited to, via a bus or other facility for intercommunication between elements of a computing device. A communicative connection may also include an indirect connection, such as, but not limited to, via a wireless connection, wireless communication, a low power wide area network, optical communication, magnetic coupling, capacitive coupling, or optical coupling, etc. In some instances, the term "communicatively coupled" may be used in place of "communicatively connected" in this disclosure.
[0013] Continuing with reference to FIG. 1, the processor 104 is configured to receive a number of electrocardiogram (ECG) signals 108 from the patient. As used in this disclosure, an "electrocardiogram signal" is a signal representative of the electrical activity of the heart. The ECG signal 108 may consist of several distinct waves and intervals, each representing a different phase of the cardiac cycle. These waves may include P waves, QRS complexes, T waves, U waves, etc. The P waves may represent the depolarization (contraction) of the atria as the electrical impulse spreads through the atria. The QRS complexes may represent the depolarization (contraction) of the ventricles as the electrical impulse spreads through the ventricles. The QRS complexes may include three waves: Q waves, R waves, and S waves. The T waves may represent the repolarization (recovery) of the ventricles as they prepare for the next contraction. The U waves may sometimes be present after the T waves and represent the repolarization of the Purkinje fibers. The intervals between these waves provide information about the duration and regularity of the various phases of the cardiac cycle. ECG signals can be useful in diagnosing various cardiac disorders such as arrhythmias, myocardial infarction (heart attacks), conduction abnormalities, and electrolyte imbalances. In one embodiment, each sensor 112 may generate an individual ECG signal 108.
[0014] With continued reference to FIG. 1 , the multiple electrocardiogram signals capture a temporal view of the heart's electrical activity. As used in this disclosure, a "temporal view" refers to an analysis and visual representation of heart-related events and phenomena over time. A temporal view may include patterns, changes, and dynamics of heart activity over time. A temporal view may include information related to the heart's rhythm, including the regularity or irregularity of the heartbeat. This allows for the identification of various rhythm disorders, such as tachycardia (fast heart rate), bradycardia (slow heart rate), or arrhythmia (irregular heart rhythm). A temporal view of the heart's activity in three dimensions may refer to a visual representation that depicts the temporal changes of heart events or phenomena in three-dimensional space. This provides a comprehensive understanding of how various heart activities change over time. The ECG signal 108 may move through the 3D space of the heart over time. The signal does not just move forward in time, but also travels through the physical space of the heart, from the Sino Auricular (SA) node through the atria to the Atrio Ventricular (AV) node and then through the ventricles. Such movement of the electrical signal through the physical space of the heart over time can be referred to as "spatiotemporal excitation and propagation," which can be captured by multiple ECG signals 108. This is essentially a way of observing and analyzing the timing and sequence of the electrical activity of the heart as it travels through the physical structure of the heart. In this case, the dimensions can include a temporal dimension, a spatial dimension, and an axis representing the cardiac activity. By combining the temporal dimension, the spatial dimension, and the cardiac activity dimension, a temporal view of the cardiac activity in three dimensions allows a comprehensive visual representation and analysis of the dynamic changes occurring within the heart. This can be used to study phenomena such as electrical conduction, ventricular wall motion, valve function, hemodynamics, or interactions between different regions of the heart. This visual representation approach provides valuable insight into the complex temporal dynamics of cardiac activity and aids in the understanding of cardiac function, pathology, and therapeutic evaluation.
[0015] Continuing with reference to FIG. 1 , the electrocardiogram signals 108 are generated using at least one sensor 112. As used in this disclosure, a "sensor" is a device configured to detect an input and / or phenomenon and transmit information related to the detection. The sensor 112 may detect a plurality of data. The plurality of data detected by the sensor 112 may include, but is not limited to, the electrocardiogram signal 108, heart rate, blood pressure, electrical signals related to the heart, and the like. In one or more embodiments, but is not limited to, the sensor 112 may include a plurality of sensors 112. In one or more embodiments, but is not limited to, the sensor 112 may include, but is not limited to, one or more electrodes, and the like. Electrodes used for electrocardiograms (ECGs) are small sensors or conductive patches that are placed at specific locations on the body to detect and record electrical signals generated by the heart. The sensor 112 serves as an interface between the body and the ECG machine, allowing the measurement and recording of the electrical activity of the heart. The sensors 112 may include the ten electrodes used for a standard 12-lead ECG, which are placed at specific locations on the patient's chest and limbs. These electrodes are typically made from a conductive material such as metal or carbon, and are connected to leads that transmit the electrical signal to the ECG machine for recording. Proper electrode placement is important to ensure accurate signal detection and recording.
[0016] Continuing to refer to FIG. 1, multiple sensors 112 may be placed on each limb, where there may be at least one sensor 112 on each arm and leg. These sensors 112 may be labeled I, II, III, V1, V2, V3, V4, V5, V6, etc. For example, sensor I may be placed on the left arm, sensor II may be placed on the right arm, and sensor III may be placed on the left leg. Furthermore, multiple sensors 112 may be placed on various parts of the patient's torso and chest. For example, sensor V1 may be placed in the fourth intercostal space on the right sternal border on both sides, and sensor V2 may be placed in the fourth intercostal space on the left sternal border on both sides. Also, sensor V3 may be placed between sensors V2 and V4, i.e., midway between the positions of sensors V2 and V4. Sensor V4 may be placed in the fifth intercostal space on the midclavicular line. Sensor V5 may be placed horizontally at the same level as sensor V4 and horizontally on the anterior axillary line. Sensor V6 may be placed horizontally at the same level as V4 and V5 and horizontally at the mid-axillary line.
[0017] Continuing to refer to FIG. 1, the plurality of sensors 112 may include extended unipolar sensors. These sensors 112 may be labeled aVR, aVL, and aVF. These sensors may be derived from the limb sensors and provide additional information about the electrical activity of the heart. These leads are calculated using a specific combination of limb leads and serve to evaluate electrical vectors in different orientations. For example, aVR may be derived from sensor II and sensor III. In another example, aVL may be derived from sensor I and sensor III. Furthermore, aVF may be derived from lead I and lead II. The combination of limb sensors, precordial sensors, and extended unipolar sensors allows for a comprehensive evaluation of the electrical activity of the heart in three dimensions. These leads capture the electrical signals from different orientations and are then transformed into transformed coordinates to generate a vector cardio gram (VCG) that represents the magnitude and direction of the electrical vector during depolarization and repolarization of the heart.
[0018] The transformed coordinates may include one or more of Cartesian (x, y, z), polar (r, θ), cylindrical (ρ, φ, z), or spherical (r, θ, φ). In some cases, the transformed coordinates, such as polar, cylindrical, and spherical coordinates, may include angles. In some cases, the VCG may be normalized, thus allowing a complete representation with only angles, i.e., angle traversals. In some cases, the angle traversals may be advantageously processed using one or more processes, such as those described below and / or spectral analysis.
[0019] Continuing with reference to FIG. 1, the processor 104 is configured to receive at least one transformation matrix 116. For purposes of this disclosure, a "transformation matrix" is a mathematical tool used to perform a transformation on an object in a coordinate system. This may include, but is not limited to, operations such as rotation, scaling, shearing, and translation (moving an entire object without changing its shape or orientation). In a non-limiting example, the transformation matrix may be used to map information from a 12-lead ECG system to a 3-lead VCG system. The processor may apply a linear transformation to multiple ECG signals, where application of the linear transformation may effectively change the basis of the coordinate system from 12-lead ECG to 3-lead VCG. In the field of Vector Cardio Graphy (VCG), the transformation matrix may play a role in mapping information from one system to another. For example, a common example is mapping data from a 12-lead electrocardiogram (ECG) system to a 3-lead VCG system. In this scenario, the transformation matrix is applied to a set of ECG signals to effectively change the basis of the coordinate system from 12-lead ECG to 3-lead VCG. In a non-limiting example, the ECG signals may be represented by a 5,000×12 dimensional matrix with 5,000 samples and 12 leads or sensors 112. The transformation matrix would have 12×3 dimensions representing the transformation from a 12-lead ECG system to a 3-lead VCG system. By multiplying the ECG matrix by the transformation matrix, the resulting matrix would have 5,000×3 dimensions corresponding to the transformed VCG signals. The linear transformation performed by the matrix effectively changes the basis of the coordinate system, allowing for the representation of data in different formats or perspectives. This transformation process facilitates the conversion of the ECG information to the VCG system, allowing for further analysis and interpretation based on the specific requirements and advantages of the VCG approach.
[0020] Continuing to refer to FIG. 1, the transformation matrix 116 includes at least one lead system selection. As used in this disclosure, a "lead system" is an arrangement of electrodes placed on the body to measure and record electrical signals. A lead system may be used to capture the electrical activity of the heart or other physiological signals. The placement and arrangement of the electrodes in the lead system determines the specific view or angle from which the electrical signals are recorded. In an embodiment, the lead system may be designed to provide a two-dimensional representation of the electrical activity of the heart. This may consist of multiple leads placed at specific locations on the body to measure electrical potentials in different directions. The lead system 116 may use various arrangements of multiple sensors 112, which may include placing sensors 112 on the limbs and the precordial region. Examples of lead systems may include the Frank lead system, the Mason-Licker lead system, the XYZ lead system, the Dower lead system, the first lead system, and the like. The sensors 112 placed on the limbs may be used to capture the electrical activity in the coronal plane, while the sensors 112 in the precordial region provide information about the electrical activity in the horizontal plane. In another embodiment, the lead system may be specifically designed to capture and represent the three-dimensional nature of the heart's electrical activity. This involves using multiple electrodes positioned on the body to measure electrical vectors from different angles. The processor 104 may identify the location of each sensor 112 based on manual input from a medical professional. Alternatively, the processor 104 may identify the location of each sensor based on its type.
[0021] Continuing to refer to FIG. 1, the lead system may include a first lead system. As used in this disclosure, the "first lead system" is a group of sensors 112 positioned in the frontal plane (X plane), horizontal plane (Y plane), and coronal plane (Z plane). These leads provide information about the electrical activity of the heart from different perspectives and angles. The X plane may refer to an imaginary plane perpendicular to the Y plane of the body. In some embodiments, the X plane may alternatively be labeled as a transverse plane. The sensor 112 located on the X plane may be positioned along the midpoint between the patient's two shoulders. The sensor 112 along the X plane may capture the electrical activity in the anterior-posterior direction, which represents the movement of the electrical vector from the front to the back of the body. The Y plane is oriented in the left-right direction of the body. The Y plane may be labeled as a sagittal plane or a longitudinal plane. The sensor 112 along the Y plane may detect the movement of the electrical vector from the right side to the left side of the body. The location of the sensor 112 along the y-plane may be located at the midpoint between the jugular notch (cervical notch) and the umbilicus (xiphoid process) on the anterior midline of the body. By recording the electrical signal along the y-plane, the sensor 112 provides information about the spatial orientation and movement of the electrical vector in the left-right direction.
[0022] Continuing with reference to FIG. 1, the processor 104 is configured to transform the multiple electrocardiogram signals 108 into a cardiac vector 120 as a function of the transformation matrix 116. As used in this disclosure, a "cardiac vector" is a transformed vector that represents an electrocardiogram, e.g., a three-dimensional vector that contains information about the magnitude and direction of the electrical signals generated by the heart during its depolarization and repolarization processes. A single cardiac vector 120 may be represented by the magnitude and direction of multiple ECG signals 108 generated from various sensors 112 located on the patient. The cardiac vector 120 may represent the net electrical force generated by the heart at a specific time. It has three components, X, Y, and Z, along three orthogonal axes. The X-axis component may represent the anterior-posterior direction. This indicates the movement of the electrical vector from the front (front) to the back (rear) of the heart. The Y-axis component may represent the left-right direction. This indicates the movement of the electrical vector from the right side to the left side of the heart. The Z-axis component may represent the up-down direction. This indicates the movement of the electrical vector from the top (above) to the bottom (below) of the heart. The magnitudes of these three components may determine the length of the cardiac vector, while their directions indicate the orientation of the vector in three-dimensional space. By analyzing the three-dimensional cardiac vector 120 over time, the processor 104 can gain insight into the spatial orientation and sequence of the cardiac electrical activity. This can be useful in diagnosing various cardiac diseases, assessing the spread of the electrical impulse, and evaluating the overall electrical function of the heart.
[0023] Continuing to refer to FIG. 1, the processor 104 may generate cardiac vectors 120 by transforming the ECG signal 108 into transformed coordinates using a transformation matrix 116. The transformed coordinates represent the magnitude and direction of the electrical vectors in three dimensions. The transformation process may vary based on the lead system and the transformation matrix 116 used. The ECG signal 108 is transformed to obtain the transformed coordinates. The transformation equations may vary depending on the lead system and the transformation matrix 116 used. In a non-limiting example, in a first lead system, standard Cartesian and / or polar transformation equations are used to derive the transformed coordinates from the sensors 112 (I, II, and III) and sensors 112 (V1-V6). These equations involve specific combinations of lead signals and coefficients. Using the transformed coordinates, the ECG signal 108 or each time point is reconstructed in three-dimensional space. These cardiac vectors 120 represent the direction and magnitude of the electrical activity at that specific moment during the cardiac cycle. In a non-limiting example, the following process is performed to obtain X, Y, and Z coordinates using the first lead system: When generating an X coordinate, ECG signals 108 from sensors 112 represented by I, II, III, aVR, aVL, aVF may be used. An example of a transformation equation in transformation matrix 116 for the X axis may include X=(0.3333*(aVR-aVL)). When generating a Y coordinate, ECG signals 108 from sensors 112 represented by I, II, III, aVR, aVL, aVF may be used. An example of a transformation equation in transformation matrix 116 for the Y axis may include Y=(0.3333*(I+aVR+aVL)). When generating a Z coordinate, ECG signals 108 from sensors 112 represented by I, II, III, aVR, aVL, aVF, and V1-V6 may be used. An example of a transformation equation in the transformation matrix 116 might include Z=(0.1667*(I+II+III+aVR+aVL+aVF+V3+V4-V5-V6)). These equations involve specific combinations of induction signals with different coefficients to calculate the X, Y, and Z coordinates.The coefficients are derived based on the principles of vectorcardiography and the orientation of the leads in the first lead system.
[0024] Continuing to refer to FIG. 1 , the processor 104 may generate the cardiac vector 120 by combining the transformed coordinates from the multiple sensors 112. This combination may involve adding the X, Y, and Z components of each ECG signal 108 to obtain a combined X, Y, and Z component of the cardiac vector 120. The X, Y, and Z coordinates obtained from each ECG signal 108 are summed to calculate the overall X, Y, and Z components of the cardiac vector. This summation is performed by adding the corresponding values of X, Y, and Z from each sensor 112. This may include adding the X, Y, and Z coordinates from all sensors 112 to obtain the combined X, Y, and Z components of the cardiac vector 120. The combined X, Y, and Z components obtained from this summation are used to calculate the overall cardiac vector 120. The cardiac vector 120 represents the net electrical force generated by the heart at a specific time. The magnitude of the cardiac vector 120 may be determined by calculating the vector length using the Pythagorean theorem. For example, the magnitude may be calculated using the formula: magnitude=sqrt(X^2+Y^2+Z^2). The direction of the cardiac vector 120 may be determined by the orientation of the X, Y, and Z components in three-dimensional space. By combining transformed coordinates obtained from multiple leads to calculate the entire cardiac vector 120, the processor 104 can gain insight into the magnitude, direction, and orientation of the heart's electrical activity during its depolarization and repolarization processes.
[0025] Continuing with reference to FIG. 1 , the processor 104 may use a vector machine learning model to convert the plurality of electrocardiogram signals 108 into cardiac vectors 120. As used in this disclosure, a “vector machine machine learning model” is a machine learning model configured to generate cardiac vectors 120. The vector machine machine learning model may correspond to the machine learning model described below in FIG. 2. Inputs to the vector machine machine learning model may include ECG signals 108, a lead system, a transformation matrix 116, transformed components, examples of cardiac vectors 120, and the like. Outputs to the vector machine machine learning model may include cardiac vectors 120 aligned to the electrocardiogram signals 108. Alternatively, outputs to the vector machine machine learning model may include Cartesian and / or polar components associated with the cardiac vectors 120. The vector training data may include a plurality of data entries containing a plurality of inputs correlating to a plurality of outputs for training the processor with a machine learning process. In an embodiment, the vector training data may include a plurality of electrocardiogram signals 108 correlating to examples of cardiac vectors 120. The vector training data may be received from a database 300. The vector training data may contain information about the ECG signal 108, the lead system, the transformation matrix 116, Cartesian and / or polar components, examples of cardiac vectors 120, etc. In an embodiment, the vector training data may be iteratively updated as a function of input and output results of past vector machine learning models or any other machine learning models mentioned throughout this disclosure. The machine learning models may be implemented using, but are not limited to, linear machine learning models such as logistic regression and / or naive Bayes machine learning models, nearest neighbor machine learning models such as k-nearest neighbor machine learning models, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic machine learning models, decision trees, boosted trees, random forest machine learning models.
[0026] 1, the processor 104 may be configured to generate a vector electrocardiogram image 124 as a function of the cardiac vector 120. As used in this disclosure, a "vector electrocardiogram image" is at least a representation of the cardiac vector 120, which may or may not be a graphical representation, but may be visualized for display. The vector electrocardiogram image 124 may be a graphical representation of the cardiac vector 120 over time. In other words, the vector electrocardiogram image 124 includes a plot of the cardiac vector 120 over a given period of time, such as a cardiac cycle. The vector electrocardiogram image 124 provides a visual depiction of the magnitude and direction of the electrical vector generated by the heart during its depolarization and repolarization processes over time. The vector electrocardiogram image 124 may include Cartesian and / or polar axes. The vector electrocardiogram image 124 is plotted in a three-dimensional coordinate system, with the X-axis representing the front-to-back direction, the Y-axis representing the left-to-right direction, and the Z-axis representing the up-to-down direction. These axes provide a spatial reference for the magnitude and direction of the cardiac vector. A vector electrocardiogram image 124 may be described as a graphical representation of the cardiac vector 120, displaying the cardiac vector 120 over a period of time. In some cases, this period may extend over several cardiac beats or cardiac cycles. In some cases, a vector electrocardiogram image 124 may include annotations regarding the P waves, QRS complexes, and T waves, which are characteristic waveforms of the cardiac electrical activity. These waveforms represent the depolarization and repolarization of the atria and ventricles. The placement and orientation of these waveforms within the vector loop provides information about the spatial distribution and sequence of the electrical activity.
[0027] With continued reference to FIG. 1 , the vector electrocardiogram image 124 may include vector loops. As used in this disclosure, a "vector loop" is a graphical representation of the trajectory that a cardiac vector follows during a cardiac cycle. It illustrates the changes in magnitude and direction of the electrical vector generated by the heart as it undergoes depolarization and repolarization. A vector loop is a continuous curve that connects Cartesian and / or polar coordinates obtained from different leads or electrodes throughout the cardiac cycle. It illustrates the changes in magnitude and direction of the electrical vector during each phase of the heart's electrical activity. A vector loop is typically plotted in a two-dimensional plane, which represents the three-dimensional nature of the cardiac vector 120. The X and Y axes of the plot correspond to the anterior-posterior and lateral-lateral directions, respectively. A vector loop is created by connecting points that represent the X and Y coordinates of the cardiac vector 120 at each time point. The shape and characteristics of the vector loop provide valuable information about the electrical activity of the heart. The vector loop can take on various shapes depending on the orientation and magnitude of the cardiac vector 120 during different phases of the cardiac cycle. The loops may be asymmetric or irregular, reflecting anomalies in the electrical conduction system or underlying cardiac disease. The size of the vector loop represents the magnitude or physical strength of the electrical vector generated by the heart. Larger loops indicate greater magnitude of electrical activity, while smaller loops suggest weak or altered electrical conduction. The orientation of the vector loop reflects the spatial direction of the electrical vector. The loops may rotate or change their orientation during different phases of the cardiac cycle, providing information about the sequential activation and propagation of electrical impulses within the heart. Deviation of the vector loop from the normal axis indicates anomalies in the electrical conduction system of the heart. Axis deviation can provide valuable diagnostic information, such as identifying the presence of left ventricular hypertrophy or bundle branch block.
[0028] Continuing with reference to FIG. 1 , the vector electrocardiogram image 124 may include a time-dependent depiction of the cardiac vector. A time-dependent depiction of the cardiac vector refers to a graphical representation showing the direction and magnitude of the electrical activity in the heart at a specific time point. This depiction is often visualized using vector arrows or lines that represent the vectors of the electrical forces generated by the heart. A time-dependent depiction of the cardiac vectors 120 may provide valuable information about the electrical activation and conduction patterns of the heart. This helps clinicians evaluate the overall electrical axis and spatial orientation of the cardiac electrical activity. In an embodiment, the time-dependent cardiac vector depiction may be displayed as a vector loop or a sequence of vector arrows. A vector loop is a closed curve that represents a complete cardiac cycle and shows the changes in the electrical vector throughout the cardiac cycle. This displays the direction and magnitude of the electrical forces generated by the heart in three-dimensional space. The start point of the vector loop is often referred to as the origin, and subsequent points along the loop may represent different time intervals during the cardiac cycle. The vector arrows connecting these points indicate the magnitude and direction of the electrical forces at those specific instants. The length and direction of the arrows convey information about the amplitude and orientation of the electrical vector. The time-varying depiction of the cardiac vector may include a video of the cardiac vector. Furthermore, when the rendition of successive time slices is converted to a video, the evolution of the shape of the spatial representation of each time slice over time not only reduces the cognitive overload of human feature extraction, but also improves the ability to detect anomalies that collectively span both single and multiple leads over time.
[0029] With continued reference to FIG. 1 , the vector electrocardiogram image 124 may include displaying the cardiac vectors 120 through an alternative lag-reconstructed ECG representation. As used in this disclosure, an "alternative lag-reconstructed ECG representation" is a method used to analyze and visualize the cardiac electrical activity by reconstructing an ECG signal using a time-delayed version of itself. This approach is based on the concept that the dynamics of the cardiac electrical system can be captured by examining the relationship between different time points in the ECG waveform. Instead of representing the ECG signal in voltage or amplitude over time as in traditional forms, the lag-reconstructed representation may focus on creating a multi-dimensional space using delayed versions of the original ECG signal. Each dimension in this space corresponds to a time-delayed version of the ECG waveform. To create the lag-reconstructed ECG representation, a technique called time-delay embedding is typically employed. This involves selecting a suitable time-delay parameter and an embedding dimension. The time delay determines how far apart the time points are in the reconstructed signal, and the embedding dimension determines the number of delayed versions used for reconstruction. Reconstructing the ECG signal in this manner allows the underlying dynamics and nonlinear nature of the cardiac electrical activity to be captured and visualized. This approach is particularly useful for analyzing and detecting patterns associated with arrhythmias, heart rate variability, and other complex dynamics that may not be readily apparent in conventional ECG representations. Once a lag-reconstructed ECG representation is obtained, various techniques such as phase space analysis, regression plots, or nonlinear dynamics methods can be applied to analyze and interpret the reconstructed signal. These methods can reveal information about underlying dynamics, attractors, or recurrent patterns, and may provide insight into the behavior of the cardiac system. The processor 104 may generate alternative lag-reconstructed ECG representations by selecting an appropriate time delay, which determines the separation between time-delayed copies of the ECG signal. This time delay is often determined using techniques such as mutual information or autocorrelation functions. The processor 104 may generate a lag vector as a function of the time delay.Lag vectors may be created by taking successive samples of the ECG signal at selected time delays. These lag vectors, also known as delay vectors, represent points in the reconstructed phase space. The embedding dimension refers to the number of components or variables used to construct each lag vector. It is often estimated using techniques such as pseudo-nearest neighbor or correlation dimension. Once the lag vectors are constructed, they can be visualized in the reconstructed phase space. The resulting trajectories or attractors in the phase space can provide insight into the underlying dynamics of the ECG signal. Various nonlinear analysis techniques, such as fractal dimension estimation, regression quantitative analysis, or Lyapunov exponent calculation, can be applied to analyze the reconstructed phase space and extract relevant information.
[0030] Continuing with reference to FIG. 1 , the vector electrocardiogram image 124 may include color-coded cardiac vectors. In an embodiment, the color-coded cardiac vectors may be generated as a function of a property of the cardiac vector. The cardiac vectors may be color-coded as a function of a temporal view of the cardiac vector. The processor 104 may assign different colors to the cardiac vectors based on various dynamic features or properties derived from a temporal view of the electrical activity, such as an ECG signal. This color-coded representation improves the visual representation and understanding of the underlying dynamics of the cardiac vectors. Examples of properties that may be used to assign colors to the cardiac vectors may include magnitude or amplitude, direction or orientation, complexity or irregularity, etc. The amplitude of the cardiac vector represents the physical strength or intensity of the electrical activity. The color coding of the vector may be based on the amplitude and may provide information about the relative physical strength of the electrical force at different times, potentially indicating areas where electrical activity is increasing or decreasing. The direction of the cardiac vector refers to the spatial orientation of the electrical force within the heart. Color-coding based on direction may reveal patterns or changes in the orientation of electrical activity, aiding in the identification of specific cardiac abnormalities or conduction patterns. The velocity or speed of the cardiac vector may reflect the amount of variation in which the electrical activity is propagating. Color-coding based on speed may highlight areas of fast or slow conduction, aiding in the identification of areas with abnormal conduction velocities or disorders in the sequence of electrical activation. Dynamic properties related to the complexity or irregularity of the cardiac vector may be used for color-coding. Measures such as fractal dimension, entropy, or complexity index may be utilized to quantify the complexity or irregularity of the vector's behavior. Color-coding based on these properties may aid in the identification of chaotic or nonlinear dynamics within the electrical activity.
[0031] Continuing with reference to FIG. 1 , one or more of the ECG signal 108, the cardiac vector 120, and the vector electrocardiogram image 124 may be represented as at least one signal. As used in this disclosure, a “signal” is any understandable representation of data, for example, from one device to another. Signals may include optical signals, hydraulic signals, pneumatic signals, mechanical signals, electrical signals, digital signals, analog signals, and the like. In some cases, the signals may be used to communicate with a computing device, for example, via one or more ports. In some cases, the signals may be transmitted and / or received by a computing device, for example, via an input / output port. The analog signals may be digitized, for example, via an analog-to-digital converter. In some cases, the analog signals may be processed, for example, by any analog signal processing steps described in this disclosure, prior to digitization. In some cases, the digital signals may be used to communicate between two or more devices, including, but not limited to, computing devices. In some cases, the digital signals may be communicated via one or more communication protocols, including, but not limited to, Internet Protocol (IP), Controller Area Network (CAN) protocols, serial communication protocols (e.g., Universal Asynchronous Receiver-Transmitter (UART)), parallel communication protocols (e.g., IEEE 128 [printer port]), and the like.
[0032] 1, in some cases, the system 100 (e.g., the processor 104 and / or the sensor 112) may perform one or more signal processing steps on a signal, such as the ECG signal 108, the cardiac vector 120, or the vector electrocardiogram image 124. For example, the system 100 may analyze, modify, and / or synthesize signals representing data to improve the signal, for example, by improving transmission efficiency, storage efficiency, or signal-to-noise ratio. Exemplary methods of signal processing may include analog, continuous-time, discrete, digital, nonlinear, and statistical. Analog signal processing may be performed on non-digitized or analog signals. Exemplary analog processes may include passive filters, active filters, additive mixers, integrators, delay lines, comparators, multipliers, voltage-controlled filters, voltage-controlled oscillators, and phase-locked loops. Continuous-time signal processing may sometimes be used to process signals that vary continuously in a domain, such as time. Exemplary non-limiting continuous-time processes may include time-domain processing, frequency-domain processing (Fourier transform), and complex frequency-domain processing. Discrete-time signal processing may be used when signals are sampled at non-continuous or discrete time intervals (i.e., intervals that are quantized in the time axis). Analog discrete-time signal processing may process signals using the following exemplary circuits: sample-and-hold circuits, analog time division multiplexers, analog delay lines, and analog feedback shift registers. Digital signal processing may be used to process digitized discrete-time sampling signals. In general, digital signal processing may be implemented by computing devices or other dedicated digital circuits, such as, but not limited to, Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), or dedicated Digital Signal Processors (DSPs). Digital signal processing may be used to implement any combination of typical arithmetic operations, including fixed-point and floating-point, real-valued and complex-valued, multiplication and addition. Digital signal processing may further operate circular buffers and look-up tables. Further non-limiting examples of algorithms that may be implemented according to digital signal processing techniques include Fast Fourier Transforms (FFTs), Finite Impulse Response (FIR) filters, Infinite Impulse Response (IIR) filters, and adaptive filters such as Wiener and Kalman filters. Statistical signal processing may be used to exploit statistical properties and process signals as random functions (i.e., stochastic processes). For example, in some embodiments, a signal may be modeled with a probability distribution that represents the noise, which in turn may be used to reduce noise in the processed signal.
[0033] Continuing with reference to FIG. 1, the processor 104 may use a transformed machine learning model to generate a vector electrocardiogram image 124. As used in this disclosure, a "transformed machine learning model" is a machine learning model configured to generate a vector electrocardiogram image 124. The transformed machine learning model may correspond to the machine learning model described below in FIG. 2. Inputs to the transformed machine learning model may include an ECG signal 108, a lead system, transformed coordinates, a cardiac vector 120, an example of a vector electrocardiogram image 124, and the like. Outputs to the transformed machine learning model may include a vector electrocardiogram image 124 aligned to the cardiac vector 120. Alternatively, the output to the transformed machine learning model may include a vector loop. The transformed training data may include a plurality of data entries containing a plurality of inputs that correlate to a plurality of outputs for training the processor with a machine learning process. In an embodiment, the transformed training data may include a plurality of cardiac vectors 120 that correlate to an example of a vector electrocardiogram image 124. The transformation training data may be received from a database 300. The transformation training data may contain information about the ECG signal 108, the lead system, transformed coordinates, cardiac vectors 120, examples of vector electrocardiogram images 124, etc. In an embodiment, the transformation training data may be iteratively updated as a function of input and output results of past transformation machine learning models or any other machine learning models mentioned throughout this disclosure. The machine learning models may be implemented using, but are not limited to, linear machine learning models such as logistic regression and / or naive Bayes machine learning models, nearest neighbor machine learning models such as k-nearest neighbor machine learning models, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic machine learning models, decision trees, boosted trees, random forest machine learning models.
[0034] Continuing with reference to FIG. 1, the processor 104 may be configured to receive a patient profile 128 from a patient. For purposes of this disclosure, a "patient profile" is a representation of information and / or data that describes information associated with a patient. The patient profile 128 may be comprised of a plurality of patient data 112. As used in this disclosure, "patient data" is information associated with a patient. The patient profile 128 may be created by the processor 104, the patient, or received from a database, such as database 300. The patient profile 128 may include personal information about the patient, such as age, height, sex, weight, current medical condition, family medical condition, medical history, etc. The patient data 112 may include health data. As used in this disclosure, "health data" is an element of data related to the patient's current health. Health data may include test results, medical records, family medical history, list of medical conditions, doctor's notes, medical facility records, etc. The patient profile may be placed through an encryption process for security purposes. The patient profile 128 may include patient records. As used in this disclosure, a "patient record" is a document containing information about a patient. Patient records may include medical records, family history, medical investigations, government records (i.e., birth certificates, social security cards, etc.), etc. Patient records may include various types of "notes" entered over time by the patient, medical personnel, third parties, etc.
[0035] With continued reference to FIG. 1 , the patient profile 128 may be received by the process 104 via patient input. For example, but not by way of limitation, the patient or a third party may manually input the patient profile 128 using a graphical patient interface of the processor 104 or a remote device, such as, for example, a smartphone or laptop. The patient profile 128 may be additionally generated via answers to a series of questions. The series of questions may be implemented using a chatbot, as described later herein. The chatbot may be configured to generate questions regarding any element of the patient profile 128. In a non-limiting embodiment, the patient may be prompted to enter specific information or may fill out a questionnaire. In an embodiment, the graphical patient interface may display a series of questions to prompt the patient to enter information regarding the patient profile 128. The patient profile 128 may be transmitted to the processor 104, such as via wired or wireless communication, as described previously in this disclosure.
[0036] Continuing with reference to FIG. 1 , the processor 104 may identify a number of past vector electrocardiogram images using the patient profile 128. As used in this disclosure, a “past vector electrocardiogram image” is a vector electrocardiogram image generated before the most recent (e.g., current) vector electrocardiogram image 124. In some embodiments, the past vector electrocardiogram images may include at least one diagnostic label 132 associated with them. The past vector electrocardiogram images may be used as training data for machine learning models or other algorithms. The past vector electrocardiogram images with known diagnostic labels may be used to train the processor 104 on patterns and associations between diagnostic features associated with the diagnostic labels 132 and specific cardiac diseases. The past vector electrocardiogram images may be identified as a function of one or more of the patient's height, weight, Body Mass Index (BMI), gender, medical history, family medical history, etc., as identified by the patient profile 128.
[0037] Continuing with reference to FIG. 1 , the processor 104 may identify a plurality of past vector electrocardiogram images using a lookup table. For purposes of this disclosure, a “lookup table” is a data structure that maps input values to output values, examples of which include, but are not limited to, arrays of data. Lookup tables may be used to replace run-time calculations with indexing operations, such as array indexing operations. Lookup tables may be configured to pre-calculate and store data in static program storage, calculated as part of a program initialization phase, or in some cases stored in application-specific platform hardware. The data in the lookup table may include past vector electrocardiogram images, diagnostic features, and diagnostic labels. The data in the lookup table may be received from the database 300. Lookup tables may also be used to identify a plurality of past vector electrocardiogram images by matching input values to output values by matching the inputs to a list of valid (or invalid) entries in an array. In a non-limiting example, the past vector electrocardiogram images may include one or more identified diagnostic features and diagnostic labels. The lookup table may look up a patient profile 128 or a diagnostic feature as input and output a list of past vector ECG images. The processor 104 may be configured to "look up" or input one or more of the patient profile 128, the diagnostic label 132, the diagnostic feature, examples of past vector ECG images, etc. Meanwhile, the output of the lookup table may include a list of past vector ECG images adjusted to the input values. Alternatively or additionally, a query representing the patient profile 108 may be sent to the lookup table and / or database, and the query may be used to search for associated data disorder identifiers stored within data records in the lookup table and / or database.
[0038] With continued reference to FIG. 1, the processor 104 may identify diagnostic features associated with the vector electrocardiogram image 124. As used in this disclosure, a "diagnostic feature" is a characteristic or component of information that provides diagnostically useful information. The processor 104 may identify diagnostic features by comparing the vector electrocardiogram image 124 to past vector electrocardiogram images. Past vector electrocardiogram images are discussed in further detail herein below. In some cases, diagnostic features may be achieved through a two-step process: (1) recognition of features in the vector electrocardiogram image 124, and (2) identification of certain features that are diagnostically useful for or otherwise correlate with cardiac disease or activity. In some cases, recognition of features in the vector electrocardiogram image 124 may include a visual representation of the vector electrocardiogram image 124. Exemplary visual representations of vector electrocardiogram images are described below with reference to FIGS. 7A-7C and 8. In some cases, the visual representation of the vector electrocardiogram image 124 may be processed to detect features according to machine vision methods.
[0039] Still referring to FIG. 1, in some embodiments, the processor 104 may receive as input a visual representation of a vector electrocardiogram image 124 and output a determination of cardiac features and electrical activity. In some cases, the registration may include image processing such as, but not limited to, object recognition, feature detection, edge / corner detection, etc. Non-limiting examples of feature detection may include Scale Invariant Feature Transform (SIFT), Canny edge detection, Shi-Tomasi corner detection, etc. In some cases, the processor 104 may perform one or more transformations, for example, to orient the visual representation (or image or video) with respect to a desired coordinate system, exemplary transformations include, but are not limited to, homography transformations and affine transformations. The processor 104 may perform additional transformations, for example, contrast enhancing transformations for feature detection (e.g., Gaussian blur or wavelet transform).
[0040] With further reference to FIG. 1, the processor 104 may receive the vector electrocardiogram image as input and output features in the vector electrocardiogram image 124. As an example, feature recognition or learning may use clustering algorithms such as K-means and particle swarm optimization. The k-means clustering algorithm receives the vector electrocardiogram image 124 and outputs a certain number of classified data entry clusters, features, where each data entry cluster contains cluster data entries. The K-means algorithm may select a specific number of groups or clusters to output, identified by a variable "k". The generation of the k-means clustering algorithm includes assigning the input containing unclassified data to "k groups" or "k clusters" based on the similarity of the features. The centers of the k groups or k clusters may be utilized to generate the classified data entry clusters. The K-means clustering algorithm may select and / or provide the "k" variable by calculating the k-means clustering algorithm for a range of k values and comparing the results. The K-means clustering algorithm may compare the results across different k values as the average distance between the cluster data entries and the cluster centers. The K-means clustering algorithm may calculate the average distance to the center as a function of the k value, and where the amount of change in the falloff begins to shift sharply may be used to select the k value. The centers of the k groups or k clusters include a collection of feature values that are used to classify the data entry clusters that contain the cluster data entries. The K-means clustering algorithm may operate to identify clusters of closely related vector electrocardiogram images 124, which may provide cardiac labels. This may, for example, generate an initial set of cardiac labels from an initial set of vector electrocardiogram image data, and may also identify new clusters in subsequent iterations to provide new cardiac labels where additional vector electrocardiogram image data may be classified or previously used vector electrocardiogram image data may be reclassified.
[0041] Continuing to refer to FIG. 1 , the generation of the k-means clustering algorithm may include generating initial estimates of k centroids, which may be randomly generated or randomly selected from the unlabeled data input. The K centroids may be utilized to define one or more clusters. The K-means clustering algorithm may assign the unlabeled data to one or more k centroids based on squared Euclidean distance by first performing a data assignment step for the unlabeled data. The K-means clustering algorithm may assign the unlabeled data to its nearest centroid based on a collection ci of centroids in set C. The unlabeled data may be calculated using argmin ci ∋ C dist(ci, x) 2 where argmin contains the minimum argument, ci contains the collection of centroids in the set C, and dist contains the standard Euclidean distance. The K-means clustering module may then recalculate the centroids by taking the average of all cluster data entries assigned to the cluster of centroids, which is given by ci=1 / |Si|Σxi ∋ Si xi The K-means clustering algorithm may continue to repeat these calculations until a stopping criterion is met, such as the cluster data entries have not changed clusters, the sum of the distances has been minimized, and / or some maximum number of iterations has been reached.
[0042] With further reference to FIG. 1 , the k-means clustering algorithm may be configured to calculate a similarity index value. As used in this disclosure, a “similarity index value” includes a distance measurement indicating a measurement between each data entry cluster generated by the k-means clustering algorithm and a selected vector electrocardiogram image 124. The similarity index value may indicate how closely at least some of the vector electrocardiogram images 124 would be classified into a particular cluster by the k-means algorithm. The K-means clustering algorithm may evaluate the distance of the vector electrocardiogram image to the k clusters output by the k-means clustering algorithm. A smaller distance between the set of physiological data and the cluster may indicate a higher similarity between the set of vector electrocardiogram image data and the particular cluster. A larger distance between the set of vector electrocardiogram image data and the cluster may indicate a lower similarity between the set of vector electrocardiogram images and the particular cluster.
[0043] With continued reference to FIG. 1 , the k-means clustering algorithm selects classified data entry clusters as a function of the similarity index value. In an embodiment, the k-means clustering algorithm may select classified data entry clusters with the smallest similarity index value indicating a high similarity between the set of vector electrocardiogram images and the data entry cluster. Alternatively or additionally, the k-means clustering algorithm may select clusters with lower similarity index values to the vector electrocardiogram images indicating greater similarity. The similarity index value may be compared to a threshold number indicating a minimum relevance suitable for including the set of vector electrocardiogram images in a cluster, where similarity indices a-n below the threshold number may be included as indicating a high relevance. The above examples of feature learning using k-means clustering are included for illustrative purposes only and should not be construed as limiting potential implementations of the feature learning algorithm. Those skilled in the art will recognize a variety of additional or alternative feature learning approaches that may be used consistent with the present disclosure upon perusal of the entire disclosure.
[0044] The processor 104 may analyze specific attributes such as loop shape, size, orientation, rotation, axial deviation, waveform characteristics, or spatial distribution of the electrical vectors. The goal is to extract quantitative measurements or descriptors that capture the diagnostic information encoded in the vector electrocardiogram image 124. The processor 104 may then identify the most informative and discriminatory features among the extracted features. This may be done using statistical analysis, information theory, or other feature selection techniques. The objective is to reduce the dimensionality of the feature space while retaining the most relevant diagnostic features. The processor 104 may then employ machine learning algorithms or pattern recognition techniques to classify the vector electrocardiogram image 124 based on the extracted features. These algorithms may include decision trees, support vector machines, artificial neural networks, or deep learning models. In some cases, identifying important features may involve using a second vector matching process: (1) vectorizing the records containing the feature or candidate features, (2) labeling the set of records as "clinically significant," and (3) comparing the two sets of vectors using a distance metric (e.g., cosine similarity). Alternatively, a user may label clinically significant events, or additional information such as text associated with an electrocardiogram may be matched to the label, for example, by using a language processing module. In some cases, the set of features of the labeled records may be tabulated, and relative frequencies and / or other statistics associated with the tabulated features may be used to select the most important, e.g., diagnostically useful, features (e.g., threshold comparisons). Further disclosure regarding feature recognition, leveling, correlation, and classification can be found in U.S. Provisional Patent Application No. 63 / 395,063, filed August 4, 2022, entitled "SYSTEMS AND METHODS FOR EXPANDINF CLINICAL COHORTS FOR IMPROVED EFFICIACY OF SUPERVISED LEARNING," which is incorporated by reference in its entirety.
[0045] Continuing with reference to FIG. 1 , diagnostic features of the vector electrocardiogram image 124 may include the size, shape, rotation, and orientation of the vector loops, as well as the output from any feature detection algorithm. In some cases, feature recognition may include one or more of frequency, phase change, Fourier decomposition, and any signal process described in this disclosure. The vector loops represent the trajectory that the cardiac vector 120 follows during the cardiac cycle. The processor 104 may evaluate the symmetry, regularity, and abnormalities of the vector loops by identifying variations in loop size that may indicate changes in the magnitude of the electrical vector. The processor 104 may evaluate the vector magnitude, vector angle, and / or other distinctive features alone, for example, using machine learning processes and / or other analysis. In some cases, for example, only the changes in vector magnitude may be converted into a waveform and analyzed using frequency analysis. Any abnormalities or changes in the loops may indicate cardiac abnormalities or alterations in electrical conduction. An additional example of a diagnostic feature may be present when the vector loop has any type of axial deviation. Axis deviation may refer to deviation of the vector loop from an expected axis. This may indicate a shift in the spatial orientation of the electrical vector within the heart. Axis deviation may provide valuable diagnostic information such as the presence of left ventricular hypertrophy or bundle branch block. The expected axis may include a typical axis, for example, an average over a series of heart beats (i.e., an average achieved during sinus rhythm). In some cases, the expected axis may be compared to cases of cardiac disease associated with atypical vector loop axes (e.g., tachycardia, fibrillation, etc.). In some cases, monitoring of vector loop axes may be performed when monitoring for transient cardiac rhythm disorders. In some cases, the expected axis of a vector loop may be determined by comparison to a population of healthy electrocardiogram patterns labeled by experts or any of the supervised / semi-supervised methods described in this disclosure. In some cases, a mean vector loop axis may be determined for a cohort similar to the patient. Diagnostic features may include the rotation of the vector loop, which may explain the change in orientation during different phases of the cardiac cycle.The rotation of the vector loops may reflect the sequential activation and propagation of electrical impulses within the heart. The direction and extent of the rotation of the loops may provide insight into the timing and coordination of electrical events. Diagnostic features may include the size of the vector loops, where the size of the vector loop represents the magnitude or physical strength of the electrical vector generated by the heart. Larger loops indicate greater magnitude of electrical activity, while smaller loops suggest weaker or altered electrical conduction. Changes in loop size may indicate changes in cardiac function. Diagnostic features may include waveform analysis. Various waveforms may be observed within the vector loops, such as P waves, QRS complexes, and T waves. These waveforms represent the depolarization and repolarization of the atria and ventricles. Analysis of the location, orientation, and characteristics of these waveforms within the vector loops may provide information about the spatial distribution and sequence of electrical activity. In some cases, vectors may be decomposed into one or more two-dimensional or other waveforms to facilitate analysis. Additional reference points may be included within the vector electrocardiogram image 124 to aid in interpretation. These points may represent specific landmarks or time points within the cardiac cycle, such as the start of ventricular activation (R point) or the peak of the T wave.
[0046] Continuing with reference to FIG. 1, the processor 104 may identify diagnostic features using a feature machine learning model. As used in this disclosure, a "feature machine learning model" is a machine learning model configured to identify one or more diagnostic features. The feature machine learning model may correspond to the machine learning model described below in FIG. 2. Inputs to the feature machine learning model may include the ECG signal 108, the lead system, transformed coordinates, cardiac vector 120, vector ECG image 124, past vector ECG images, examples of diagnostic features, etc. Output to the feature machine learning model may include diagnostic features tailored to the vector electrocardiogram image 124. Feature training data may include a number of data entries containing a number of inputs that correlate to a number of outputs for training the processor with a machine learning process. In an embodiment, the feature training data may include a number of past vector electrocardiogram images that correlate to example diagnostic features. As described above, feature learning algorithms may include k-means clustering, particle swarm optimization, and the like. Identifying features may include identifying diagnostic features that correlate to the cardiac disease of interest. Diagnostic features may be labeled as described above or by any other feature learning method known in the art.
[0047] The feature training data may be received from the database 300. The feature training data may contain information about the ECG signal 108, the lead system, transformed coordinates, the cardiac vector 120, the vector ECG image 124, past vector ECG images, examples of diagnostic features, etc. In an embodiment, the feature training data may be iteratively updated as a function of input and output results of past feature machine learning models or any other machine learning models mentioned throughout this disclosure. The machine learning models may be implemented using, but are not limited to, linear machine learning models such as logistic regression and / or naive Bayes machine learning models, nearest neighbor machine learning models such as k-nearest neighbor machine learning models, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic machine learning models, decision trees, boosted trees, random forest machine learning models.
[0048] Continuing with reference to FIG. 1 , the processor 104 may be configured to assign at least one diagnostic label 132 to the patient and / or the patient profile 128 as a function of the vector electrocardiogram image 124. As used in this disclosure, a “diagnostic label” is a label used to describe a specific disease, disorder, or illness affecting an individual's health or cardiac structure or function. The diagnostic label 132 may be associated with any specific disease, disorder, or illness, specifically any disease associated with the heart. In a non-limiting example, the diagnostic label 132 may be associated with diseases related to cardiac health, such as normal sinus rhythm, atrial fibrillation, myocardial infarction, ventricular tachycardia, bundle branch block, arrhythmia, ischemic heart disease, cardiac hypertrophy, conduction abnormalities, cardiac ischemia, electrolyte imbalances, etc. The processor 104 may assign the diagnostic label 128 to the patient as a function of the diagnostic features of the vector electrocardiogram image 124 and the patient profile 128. The processor 104 may assign the diagnostic label 132 by comparing the current vector electrocardiogram image 124 with past vector electrocardiogram images. This comparison may include comparing diagnostic features of the current vector electrocardiogram image 124 with past vector electrocardiogram images for similarities or differences. This may also be cross-referenced with a patient profile 128, which may provide additional context for the comparison. The processor 104 may employ pattern matching techniques to identify specific patterns or abnormalities in the vector electrocardiogram image 124 and generate the diagnostic label 132. This may involve comparing specific segments, intervals, or waveforms of the vector electrocardiogram image 124 to detect similarities or differences. Cross-correlation algorithms, template matching algorithms, or dynamic time warping algorithms may be used for this purpose. The processor 104 may perform statistical analysis on various parameters derived from the vector electrocardiogram image 124 to generate the diagnostic label 132. This may involve calculating the mean, standard deviation, or other statistical measures for particular features or segments of the vector electrocardiogram image 124.By comparing these statistical parameters, the computer can identify significant differences or similarities between the vector electrocardiogram images 124. The diagnostic labels 132 may be associated with one or more diagnostic features. This may mean that if a diagnostic feature appears in the vector electrocardiogram image 124, the patient may have a high probability of having a given disease, disorder, or illness. In a non-limiting example, the processor 104 assigns the patient a diagnostic label 132 associated with a specific cardiac disease because a diagnostic feature associated with the specific cardiac disease in a past vector electrocardiogram image matches a current diagnostic feature of the vector electrocardiogram image 124.
[0049] Continuing with reference to FIG. 1 , the processor 104 may identify diagnostic features using an assignment machine learning model 136. As used in this disclosure, an "assignment machine learning model" is a machine learning model configured to assign diagnostic labels 132. The assignment machine learning model 136 may correspond to a machine learning model described below in FIG. 2. Inputs to the assignment machine learning model 136 may include ECG signals 108, lead systems, transformation matrices 116, transformed coordinates, cardiac vectors 120, vector electrocardiogram images 124, past vector electrocardiogram images, diagnostic features, examples of diagnostic labels 132, and the like. Outputs to the assignment machine learning model 136 may include assigning diagnostic labels 132 aligned with the vector electrocardiogram images 124. The assignment training data may include a number of data entries containing a number of inputs that correlate to a number of outputs for training the processor with a machine learning process. In an embodiment, the assignment training data may include a number of past vector electrocardiogram images that correlate to examples of vector electrocardiogram images 124. In another embodiment, the assignment training data may include a plurality of past vector ECG images including a plurality of diagnostic features that correlate to the example vector ECG image 124. The assignment training data may be received from a database 300. The assignment training data may contain information about the ECG signal 108, the lead system, the transformation matrix 116, the transformed coordinates, the cardiac vector 120, the vector ECG image 124, past vector ECG images, diagnostic features, examples of diagnostic labels 132, and the like. In an embodiment, the assignment training data may be iteratively updated as a function of the input and output results of the past assignment machine learning model 136 or any other machine learning model mentioned throughout this disclosure. The machine learning model may be implemented using, but is not limited to, a linear machine learning model such as a logistic regression and / or a naive Bayes machine learning model, a nearest neighbor machine learning model such as a k-nearest neighbor machine learning model, a support vector machine, a least squares support vector machine, Fisher's linear discriminant, a quadratic machine learning model, a decision tree, a boosted tree, a random forest machine learning model.
[0050] Continuing with reference to FIG. 1, the processor 104 may use comparative fuzzy inference to compare the vector electrocardiogram image 124 to past vector electrocardiogram images. As used in this disclosure, "comparative fuzzy inference" is a method of interpreting values in input vectors (i.e., the vector electrocardiogram image 124 and past vector electrocardiogram images) and assigning values to an output vector based on a set of rules. The set of fuzzy rules may include a collection of linguistic variables that describe how the system should make a decision regarding classification of an input or control of an output. Fuzzy inference rules operate on fuzzy sets and provide a framework for mapping input variables to output variables through linguistic rules. Fuzzy inference rules may operate using linguistic variables that represent imprecise or ambiguous concepts rather than precise numerical values. The linguistic variables are defined by membership functions that describe the degree of membership or truth to different linguistic terms or categories. In a non-limiting example, the linguistic variables associated with the diagnostic label 132 may have linguistic terms such as "myocardial infarction," "ventricular tachycardia," "cardiac hypertrophy," etc., each with a corresponding membership function. Fuzzy inference rules typically follow a conditional "IF-THEN" structure. It consists of an antecedent (the IF part) and a consequent (the THEN part). The antecedent specifies the condition or criteria under which the rule will be applied, and the consequent determines the output or conclusion of the rule. In one embodiment, the assignment of a diagnostic label 132 may be determined by comparing the degree of agreement between the first and second fuzzy sets and / or single values therein with each other or belonging to either set, which is sufficient for the purposes of the matching process.
[0051] 1, the assignment of the diagnostic label 132 may be determined as a function of the intersection between two fuzzy sets, where each fuzzy set may represent the vector electrocardiogram image 124 and the past vector electrocardiogram image, respectively. The comparison of the vector electrocardiogram image 124 with the past vector electrocardiogram images may include utilizing a fuzzy set reasoning system as described herein below, or any scoring method as described throughout this disclosure. For example, but not by way of limitation, the processor 104 may use a fuzzy logic model to determine the assignment of one or more diagnostic labels 132 as a function of a fuzzy set comparison technique as described in this disclosure. In some embodiments, each piece of information associated with the vector electrocardiogram image 124 may be compared with the past vector electrocardiogram images, where the diagnostic label 132 may be represented using a linguistic variable over a range of potential values, where the values for the linguistic variable may be represented as a fuzzy set over the range. A "good" or "ideal" fuzzy set may correspond to a range of values that can be characterized as ideal, while other fuzzy sets may correspond to ranges that can be characterized as fair, bad, or other less ideal ranges and / or values. In an embodiment, these variables may be used to compare the vector electrocardiogram image 124 with past vector electrocardiogram images and assign a unique diagnostic label 132 to the vector electrocardiogram image 124. A fuzzy inference system may combine such linguistic variable values according to one or more fuzzy inference rules, including any type of fuzzy inference system and / or rules as described in this disclosure, to determine the degree of membership in one or more output linguistic variables having values that represent ideal overall performance, average or moderate overall performance, and / or poor or unsatisfactory overall performance. Such mappings may then be "defuzzed," as described in more detail below, to provide an overall output and / or assessment.
[0052] With further reference to FIG. 1, the processor may be configured to generate a machine learning model, such as an assignment machine learning model, using a naive Bayes classification algorithm. A naive Bayes classification algorithm generates a classifier by assigning class labels to problem instances represented as vectors of element values. The class labels are drawn from a finite set. A naive Bayes classification algorithm may include generating a family of algorithms that assume that, given a class variable, the value of a particular element is independent of the value of any other element. A naive Bayes classification algorithm may be based on Bayes' theorem, expressed as P(A / B)=P(B / A)P(A)÷P(B). P(A / B) is the probability of hypothesis A given data B, also known as the posterior probability. P(B / A) is the probability of data B given that hypothesis A was true, and P(A) is the probability that hypothesis A is true regardless of the data, also known as the prior probability of A. P(B) is the probability of the data independent of the hypothesis. A naive Bayes algorithm may be generated by first converting the training data into a frequency distribution table. The processor 104 may then calculate a likelihood table by calculating the probabilities of different data entries and classification labels. The processor 104 may utilize a naive Bayes equation to calculate the posterior probability for each class. The class containing the highest posterior probability is the predicted outcome. The naive Bayes classification algorithm may include a Gaussian model that follows a normal distribution. The naive Bayes classification algorithm may include a multinomial model that is used for discrete counts. The Naive Bayes classification algorithm may include a Bernoulli model, which may be utilized when the vectors are binary.
[0053] With further reference to FIG. 1 , the processor 104 may be configured to generate a machine learning model, such as an assignment machine learning model, using a K-Nearest Neighbors (KNN) algorithm. As used in this disclosure, a "K-Nearest Neighbors algorithm" includes a classification method that utilizes feature similarity to analyze how similar out-of-sample features are to training data and classifies input data into one or more clusters and / or categories of features as represented in the training data. This may be performed by representing both the training data and the input data in vector form and using one or more measures of vector similarity to identify classifications in the training data and determine the classification of the input data. The K-Nearest Neighbors algorithm may include specifying a K value, or a number that instructs the classifier to select the k most similar entries training data for a given sample, determining the most common classifiers among the entries in the database, and classifying the known sample. This may be performed recursively and / or iteratively to generate classifiers that may be used to classify the input data as further samples. For example, an initial set of samples may be implemented to cover initial heuristics and / or "first guesses" at the outputs and / or relationships, which may be seeded using, without limitation, expert input received according to any process as described herein. As a non-limiting example, the initial heuristics may include rankings of associations between the inputs and elements of the training data. The heuristics may include selecting a few of the highest ranked associations and / or training data elements.
[0054] Continuing with reference to FIG. 1, the generating k-nearest neighbors algorithm may generate a first vector output containing data entry clusters, generate a second vector output containing input data, and calculate the distance between the first and second vector outputs using any suitable norm, such as cosine similarity, Euclidean distance measure, etc. Each vector output may be represented, without limitation, as an n-tuple of values, where n is at least two values. Each value in the n-tuple of values may represent a measurement or other quantitative value associated with a given data category or attribute, examples of which are provided in more detail below. The vectors may be represented in an n-dimensional space, without limitation, using an axis for each category of values represented in the n-tuple of values, such that the vectors have a geometric direction that characterizes the relative amount of attributes in the n-tuple compared to each other. Two vectors may be considered equivalent if their directions and / or the relative amount of values in each vector compared to each other are the same. Thus, as a non-limiting example, a vector represented as [5,10,15] may be treated as equivalent for purposes of this disclosure to a vector represented as [1,2,3]. Vectors may be more similar if their directions are more similar, and more dissimilar if their directions are more divergent. However, vector similarity may alternatively or additionally be determined using an average of similarities between similar attributes, or any other similarity measure appropriate for any n-tuple of values, or an aggregation of numerical similarity measures for use in a loss function as described in more detail below. Any of the vectors described herein may be scaled, so that each vector represents each attribute along an equivalent scale of values. Each vector may be "normalized," or scaled using the Pythagorean norm
number
[0055] With continued reference to FIG. 1 , the processor 104 may generate a confidence score as a function of the assignment of the diagnostic label 132. As used in this disclosure, a “confidence score” is a quantitative measure of the accuracy of the assignment of the diagnostic label 132. The accuracy of the assignment of the diagnostic label 132 may refer to the likelihood of a correct diagnosis of a disease, illness, or problem experienced by a patient. The processor 104 may generate a confidence score for each diagnostic label 132 assigned to the vector electrocardiogram image 124. The processor 104 may calculate the confidence score based on the similarity or dissimilarity between two diagnostic labels 132 based on the diagnostic features extracted from the vector electrocardiogram image 124. Various similarity metrics may be employed, such as Euclidean distance, cosine similarity, Jaccard similarity, or any other appropriate measure for the type of data being compared. The processor 104 may use the calculated similarity or dissimilarity value to generate a confidence score. This score may represent a level of confidence or certainty of the accuracy of the assignment of the diagnostic label 132. The score may be calculated based on a statistical method, a probability model, or a decision rule based on the patient profile 128 and the extracted diagnostic features. The confidence score may be used to normalize the one or more assignments of the diagnostic label 132 to a comparable scale. This step is important to eliminate any bias introduced by different qualities of the vector electrocardiogram images 124. Normalization techniques may include min-max scaling, z-score normalization, or logarithmic transformation. In an embodiment, the confidence score may be high if the assignment of the diagnostic label 132 is likely to be accurate, and conversely, the confidence score may be low if the assignment of the diagnostic label 132 is likely to be inaccurate. The confidence score may be expressed as a numerical score, a linguistic value, an alphanumeric score, or an alphabetical score. The confidence score may be expressed as a score used to reflect the level of accuracy assigned to the diagnostic label 132.Non-limiting examples of numerical scores may include scales of 1-10, 1-100, 1-1,000, etc., where a rating of 1 may represent an inaccurate assignment of a diagnostic label 132 and a rating of 10 may represent an accurate assignment of a diagnostic label 132. In another non-limiting example, the linguistic values may include "very accurate," "moderately accurate," "moderately inaccurate," "very inaccurate," etc. In some embodiments, the linguistic values may correspond to a numerical score range. For example, an assignment of a diagnostic label 132 receiving a score of 50-75 on a scale of 1-100 may be considered "moderately accurate."
[0056] Continuing with reference to FIG. 1, the processor 104 may generate a confidence score using a score machine learning model. As used in this disclosure, a "score machine learning model" is a machine learning model configured to generate a confidence score. The score machine learning model may correspond to the machine learning model described below in FIG. 2. Inputs to the score machine learning model may include ECG signal 108, lead system, transformed coordinates, cardiac vector 120, vector ECG image 124, past vector ECG images, diagnostic features, diagnostic label 132, example confidence scores, and the like. Outputs to the score machine learning model may include confidence scores aligned to one or more diagnostic labels 132. Score training data may include a plurality of data entries containing a plurality of inputs correlating to a plurality of outputs for training the processor with a machine learning process. In an embodiment, the score training data may include a plurality of diagnostic labels 132 correlating to example confidence scores. Example confidence scores may include past confidence scores generated from a previous iteration of the score machine learning model or the device 100. The score training data may be received from a database 300. The score training data may contain information about the ECG signal 108, the lead system, transformed coordinates, cardiac vector 120, vector ECG image 124, past vector ECG images, diagnostic features, diagnostic labels 132, examples of confidence scores, etc. In an embodiment, the score machine learning model may be iteratively updated using past score machine learning model inputs and output results. The machine learning model may be implemented using, but is not limited to, linear machine learning models such as logistic regression and / or naive Bayes machine learning models, nearest neighbor machine learning models such as k-nearest neighbor machine learning models, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic machine learning models, decision trees, boosted trees, random forest machine learning models, etc.
[0057] Continuing with reference to FIG. 1 , the processor 104 may generate a diagnostic report based on the assignment of one or more diagnostic labels 132. As used in this disclosure, a “diagnostic report” is a summary of the analysis performed on the vector electrocardiogram image 124, resulting in the assignment of one or more diagnostic labels 132. The diagnostic report may detail a number of pieces of information associated with the patient profile 128. The diagnostic report describes essential patient information such as the patient's name, age, sex, and any relevant medical identifiers. This information helps ensure proper identification of the patient and associate diagnostic findings with the correct individual. The diagnostic report may include the date and time of recording of the vector electrocardiogram image 124, the signal or electrode configuration employed, and any specific instructions or conditions during the recording process. These details provide a context for subsequent analysis and interpretation. The report may include technical findings regarding the quality and validity of the vector electrocardiogram image 124. This may entail observations or notes about signal quality, the presence of artifacts or noise, or any technical issues that may have affected the analysis. These findings help assess the reliability of the diagnostic conclusion. The report may include diagnostic features from the vector ECG image 124, including loops, loop orientation, loop shape, QRS complex characteristics, ST segment abnormalities, and other features such as any other relevant parameters derived from the VCG data. The report may provide numerical, graphical representations, or visual illustrations of these features to aid understanding. Based on the analysis of the diagnostic features, the report may include a diagnostic conclusion associated with a diagnostic label 132, which identifies any abnormalities or specific cardiac diseases present in the vector ECG image 124. Diagnostic conclusions can be binary (normal vs. abnormal) or multi-class labels representing different cardiac diseases. Each conclusion is supported by an analysis of the extracted features and may include a confidence level or severity rating.
[0058] With further reference to FIG. 1 , the processor 104 may be configured to display the diagnostic label 132 using a display device 140. As used in this disclosure, a "display device" is a device used to display content. The display device 140 may include a user interface. As used herein, a "user interface" is a means by which a user interacts with a computer system, for example, through the use of input devices and software. A user interface may include a Graphical User Interface (GUI), a Command Line Interface (CLI), a menu-driven user interface, a touch user interface, a Voice User Interface (VUI), a form-based user interface, any combination thereof, and the like. A user interface may include a smartphone, a smart tablet, a desktop computer, or a laptop computer operated by a user. In an embodiment, a user interface may include a graphical user interface. As used herein, a "graphical user interface (GUI)" is a graphical form of a user interface that allows a user to interact with an electronic device. In some embodiments, the GUI may include icons, menus, other visual or audio indicators such as graphics, primary notations, and display information and associated user controls. A menu may contain a list of options and allow a user to select one from among them. A menu bar, such as a pull-down menu, may be displayed horizontally on the screen. When any option in the menu is clicked, a pull-down menu may appear. A menu may include a context menu that appears only when a user performs a specific action.In this example, that is pressing the right mouse button. When this action occurs, a menu may appear under the cursor. Files, programs, web pages, etc. may be represented using small images in the graphical user interface. For example, links to a decentralized platform such as those described in this disclosure may be incorporated using icons. The use of icons can be a quick way to open documents, run programs, etc., because clicking on them provides immediate access. Information contained within a user interface can be directly influenced using graphical control elements such as widgets. As used herein, a "widget" is a user control element that allows a user to control and change the appearance of an element in a user interface. In this context, a widget can refer to a common GUI element such as a checkbox, button, or scrollbar to an instance of that element, or a customized collection of such elements used for a specific function or application, such as a dialog box that allows a user to customize the appearance of a computer screen. Controls in a user interface can include software components that a user interacts with through direct manipulation to read or edit information displayed through the user interface. Widgets can be used to display lists of related items, navigate the system using links, tabs, and manipulate data using checkboxes, radio boxes, and the like.
[0059] 2, an exemplary embodiment of a machine learning module 200 is illustrated that may perform one or more machine learning processes as described in this disclosure. The machine learning module may use the machine learning processes to perform the determining, classifying and / or analyzing steps, methods, processes, etc. as described in this disclosure. As used in this disclosure, a "machine learning process" is a process that automatically uses training data 204 to generate algorithms instantiated in hardware or software logic, data structures, and / or functions that will be performed by a computing device / module to generate output 208 given data provided as input 212. This is in contrast to non-machine learning software programs where the commands to be executed are pre-determined by a user and written in a programming language.
[0060] With further reference to FIG. 2, "training data," as used herein, is data containing correlations that a machine learning process may use to model relationships between two or more categories of data elements. For example, but not by way of limitation, the training data 204 may include multiple data entries, also known as "training examples," each of which represents a set of data elements recorded, received, and / or generated together. The data elements may be correlated by shared presence in a given data entry, proximity in a given data entry, and the like. The multiple data entries in the training data 204 may estimate one or more trends of correlations between categories of data elements. For example, but not by way of limitation, higher values of a first data element belonging to a first category of data elements may tend to correlate with higher values of a second data element belonging to a second category of data elements, indicating a possible proportionality or other mathematical relationship linking values belonging to the two categories. In the training data 204, multiple categories of data elements may be associated according to various correlations. Correlation may indicate causal and / or predictive connections between categories of data elements, which may be modeled as relationships, such as mathematical relationships, through machine learning processes as described in more detail below. The training data 204 may be formatted and / or organized by categories of data elements, for example, by associating a data element with one or more descriptors that correspond to the categories of the data element. As a non-limiting example, the training data 204 may include data entered by a person or process in a standardized format, whereby an entry of a given data element in a given field in a form may be mapped to one or more descriptors of the category. Elements in the training data 204 may be linked to the descriptors of the category by tags, tokens, or other data elements. For example, but not by way of limitation, the training data 204 may be provided in a fixed-length format, i.e., a format that links the location of data to categories, such as a Comma-Separated Value (CSV) format, and / or a self-describing format, such as Extensible Markup Language (XML), Java Script Object Notation (JSON), etc., that allows a process or device to detect the category of the data.
[0061] Alternatively or additionally, with continued reference to FIG. 2, the training data 204 may include one or more elements that are unclassified. That is, the training data 204 may be unformatted or may not contain descriptors for some elements of the data. Machine learning algorithms and / or other processes may sort the training data 204 according to one or more classifications, for example, using natural language processing algorithms, tokenization, detection of correlation values in the raw data, etc. Categories may be generated using correlation and / or other processing algorithms. As a non-limiting example, in a corpus of text, phrases that make up a number "n" of compounds, such as nouns modified by other nouns, may be identified according to a statistically significant prevalence of n-grams that contain such words in a particular order. Such n-grams may be classified as elements of language, such as "words," that are tracked similarly to single words, and generate new categories as a result of the statistical analysis. Similarly, in a data entry that includes some text data, a person's name may be identified by reference to a list, dictionary, or other enumeration of terms, allowing for ad-hoc classification by a machine learning algorithm and / or automated association of data in the data entry with a descriptor or into a given format. The ability to automatically classify data entries may allow the same training data 204 to be applicable to two or more distinctly different machine learning algorithms, as described in more detail below. The training data 204 used by the machine learning module 200 may correlate any input data as described in this disclosure to any output data as described in this disclosure.
[0062] 2, the training data may be filtered, sorted, and / or selected using one or more supervised and / or unsupervised machine learning processes and / or models, as described in more detail below. Such models may include, but are not limited to, a training data classifier 216. The training data classifier 216 may include a "classifier," which as used in this disclosure is a machine learning model as defined below, including data structures that represent and / or use a mathematical model, neural net, or program generated by a machine learning algorithm known as a "classification algorithm" that sorts inputs into categories or bins of data and outputs the categories or bins of data and / or labels associated therewith, as described in more detail below. The classifier may be configured to output at least one piece of data that labels or otherwise identifies, such as sets of data that are clustered together and found to be close under a distance metric as described below. The distance metric may include any norm, such as, but not limited to, the Pythagorean norm. The machine learning module 200 may generate a classifier using a classification algorithm, defined as the process by which a computing device and / or any modules and / or components operating thereon derive a classifier from the training data 204. Classification may be performed using, but is not limited to, linear classifiers such as logistic regression and / or naive Bayes classifiers, nearest neighbor classifiers such as k-nearest neighbor classifiers, support vector machines, least squares support vector machines, Fisher's linear discriminant, quadratic classifiers, decision trees, boosted trees, random forest classifiers, learning vector quantization, and / or neural network based classifiers.
[0063] With further reference to FIG. 2, training examples for use as training data may be selected from a population of potential examples according to a cohort relevant to the analytical problem, classification task, etc. to be solved. Alternatively or additionally, the training data may be selected to span a set of situations or inputs that the machine learning model and / or process may encounter upon deployment. For example, but not limited to, for each category of input data to the machine learning process or model that may be present within a range of values in a population of phenomena such as images, patient data, process data, physical data, etc., the computing device, processor, and / or machine learning model may select training examples that represent each possible value on such range and / or a representative sample of values on such range. The selection of the representative sample may include selecting training examples in a proportion that matches a statistically determined and / or predicted distribution of such values according to relative frequency, such that, for example, values encountered more frequently in the population of data so analyzed are represented by more training examples than values encountered less frequently. Alternatively or additionally, the set of training examples may be compared to a collection of representative values in a database and / or presented to a user, such that the process can detect one or more values that are not included in the set of training examples, either automatically or via user input. The computing device, processor, and / or module may automatically generate missing training examples by receiving and / or retrieving missing input and / or output values and correlating the missing input and / or output values with corresponding output and / or input values that are co-located with the retrieved values in the data record, which may be provided by a user and / or other device, etc.
[0064] With further reference to FIG. 2, the computer, processor, and / or module may be configured to sanitize the training data. As used in this disclosure, "sanitizing" the training data is a process in which training examples that prevent the convergence of a machine learning model and / or processing to a useful result are removed. For example, but not limited to, the training examples may include input and / or output values that deviate from commonly encountered values, such that a machine learning algorithm using the training examples is adapted to unlikely amounts as inputs and / or outputs, e.g., values that are more than a threshold number of standard deviations away from the mean, average, or expected value may be eliminated. Alternatively or additionally, one or more training examples may be identified as having low quality data. In this case, "low quality" is defined as having a signal-to-noise ratio below a threshold.
[0065] As a non-limiting example, and with further reference to FIG. 2, images used to train an image classifier or other machine learning model, and / or processes that take images as input or generate images as output, may be rejected if the image quality is below a threshold. For example, but not by way of limitation, a computing device, processor, and / or module may perform blur detection, and rejecting one or more blur detections may be performed by, but not by way of limitation, performing a Fourier transform, or an approximation such as a Fast Fourier Transform (FFT), of the image, and analyzing the distribution of low and high frequencies in the resulting frequency domain representation of the image. The number of high frequency values below a threshold level may indicate blur. As a further non-limiting example, blur detection may be performed by convolving the image, or a channel of the image, or the like, with a Laplacian kernel. This may generate a numerical score reflecting the number of abrupt changes in intensity shown in the image, whereby a high score indicates clarity and a low score indicates blur. Blur detection may be performed using gradient-based operators, which measure the gradient or first derivative of the image, based on the hypothesis that abrupt changes indicate sharp edges in the image, i.e., less blurring. Blur detection may be performed using wavelet-based operators, which exploit the ability of discrete wavelet transform coefficients to describe the frequency and spatial content of an image. Blur detection may be performed using statistics-based operators, which exploit some image statistics as texture descriptors, to calculate the focus level. Blur detection may be performed using Discrete Cosine Transform (DCT) coefficients to calculate the focus level of an image from its frequency content.
[0066] With continued reference to FIG. 2, the computing device, processor, and / or module may be configured to precondition one or more training examples. For example, but not by way of limitation, if a machine learning model and / or process has one or more inputs and / or outputs that require, transmit, or receive a certain number of bits, samples, or other data units, the elements of one or more training examples used as inputs and / or outputs or compared to the inputs and / or outputs may be modified to have such number of data units. For example, the computing device, processor, and / or module may convert a smaller unit, such as an image with a low number of pixels, to a desired number of units, such as by upsampling and interpolation. As a non-limiting example, an image with a low number of pixels may have 100 pixels, but the desired number of pixels may be 128. The processor may interpolate the image with a low number of pixels to convert the 100 pixels to 128 pixels. It should also be noted that one of ordinary skill in the art would recognize various methods for interpolating smaller units of data, such as samples, pixels, bits, etc., to a desired number of such units upon reading this disclosure. In some instances, the set of interpolation rules may be trained with a set of highly detailed inputs and / or outputs and corresponding inputs and / or outputs downsampled to smaller units, and a neural network or other machine learning model trained to predict the interpolated pixel values using the training data. As a non-limiting example, sample inputs and / or outputs, such as a sample image with sample augmented data units (e.g., pixels added between original pixels), may be input to a neural network or machine learning model that outputs a pseudo-replica sample image with dummy values assigned to pixels between the original pixels based on the set of interpolation rules.As a non-limiting example, in the context of an image classifier, a machine learning model may have a set of interpolation rules trained with a set of highly detailed images and images downsampled to smaller pixels, and in the context of face pictures, a neural network or other machine learning model trained using those examples to predict the interpolated pixel values. As a result, an input with sample expanded data units (added between the original data units and with dummy values) may be run through the trained neural network and / or model, which may fill in values to replace the dummy values. Alternatively or additionally, the processor, computing device, and / or module may utilize a sample expander method, a low pass filter, or both. As used in this disclosure, a "low pass filter" is a filter that passes signals with frequencies below a selected cutoff frequency and attenuates signals with frequencies above the cutoff frequency. The exact frequency response of the filter depends on the design of the filter. The computing device, processor, and / or module may fill in data units between the original data units using averaging, such as luma or chroma averaging within the image.
[0067] In some embodiments, with continued reference to FIG. 2, a computing device, processor, and / or module may downsample elements of a training example to a desired smaller number of data elements. As a non-limiting example, a high pixel count image may have 256 pixels, but a desired number of pixels may be 128. The processor may downsample the high pixel count image to convert the 256 pixels to 128 pixels. In some embodiments, the processor may be configured to perform downsampling on the data. Downsampling, also known as decimation, may involve removing every Nth entry, all entries except the Nth, etc., in a sequence of samples, a process known as "compression," which may be performed, for example, by an N-sample compressor implemented using hardware or software. Anti-aliasing and / or anti-imaging filters and / or low-pass filters may be used to remove compression artifacts.
[0068] With further reference to FIG. 2, the machine learning module 200 may be configured to perform a lazy learning process 220 and / or protocol, which may alternatively be referred to as a “lazy loading” or “call on demand” process and / or protocol, in which machine learning is performed upon receipt of inputs that are converted into outputs by combining the inputs and a training set to derive an algorithm that is used to generate outputs on demand. For example, an initial set of simulations may be performed to cover initial heuristics and / or “first guesses” at the outputs and / or relationships. As a non-limiting example, the initial heuristics may include rankings of associations between the inputs and elements of the training data 204. The heuristics may include selecting a number of the highest ranking associations and / or elements of the training data 204. The lazy learning may implement any suitable lazy learning algorithm, including, but not limited to, a K-nearest neighbor algorithm, a lazy naive Bayes algorithm, and the like. Those skilled in the art will be aware of a variety of lazy learning algorithms that may be applied to generate outputs as described in this disclosure, including, but not limited to, lazy learning applications of machine learning algorithms as described in more detail below.
[0069] Alternatively or additionally, with continued reference to FIG. 2, a machine learning process as described in this disclosure may be used to generate the machine learning model 224. As used in this disclosure, a "machine learning model" is a data structure that represents and / or instantiates a mathematical and / or algorithmic representation of a relationship between inputs and outputs, generated and stored in memory using any machine learning process, including, but not limited to, any process as described above. Once the inputs are created, they are sent to the machine learning model 224, which generates an output based on the derived relationship. For example, but not limited to, a linear regression model generated using a linear regression algorithm may calculate a linear combination of the input data using coefficients derived during the machine learning process to calculate the output data. As a further non-limiting example, the machine learning model 224 may be generated by creating an artificial neural network, such as a convolutional neural network, that includes an input layer of nodes, one or more hidden layers, and an output layer of nodes. Connections between nodes may be generated through a process of "training" the network, where elements from a set of training data 204 are applied to input nodes and then a suitable training algorithm (such as Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithm) is used to adjust the connections and weights between nodes in adjacent layers of the neural network to produce desired values for output nodes. This process is sometimes referred to as deep learning.
[0070] With further reference to FIG. 2, the machine learning algorithm may include at least one supervised machine learning process 228. At least one supervised machine learning process 228, as defined herein, includes an algorithm that receives a training set that associates some inputs with some outputs and attempts to generate one or more data structures that represent and / or instantiate one or more mathematical relationships that associate the inputs with the outputs, each of which is optimal according to some criteria specified to the algorithm using some scoring function. For example, the supervised learning algorithm may include past vector electrocardiogram images as described above as inputs, at least one diagnostic label 132 as outputs, and a scoring function that represents a desired form of relationship to be found between the inputs and the outputs. The scoring function may, for example, attempt to maximize the probability that a given input and / or combination of elemental inputs is associated with a given output and minimize the probability that a given input is not associated with a given output. The scoring function may be expressed as a risk function that represents the "expected loss" of the algorithm that associates inputs with outputs, where the loss is calculated as an error function that represents the degree to which the prediction produced by the relationship is incorrect when compared to a given input-output pair provided in the training data 204. Those skilled in the art will be aware upon reading this entire disclosure of the various possible variations of at least one supervised machine learning process 228 that may be used to determine the relationship between the inputs and outputs. The supervised machine learning process may include a classification algorithm as defined above.
[0071] With further reference to FIG. 2, training of a supervised machine learning process may include iteratively updating coefficients, biases, weights based on, but not limited to, an error function, an expected loss, and / or a risk function. For example, outputs generated by a supervised machine learning model using example inputs in a training example may be compared to example outputs from said training example. An error function may be generated based on said comparison, which may include any error function suitable for use with any machine learning algorithm described in this disclosure, including the square of the difference between one or more sets of compared values, and the like. Such an error function may then be used to update one or more weights, biases, coefficients, or other parameters of the machine learning model through any suitable process, including but not limited to, a gradient descent process, a least squares process, and / or other processes described in this disclosure. This may be done iteratively and / or recursively to gradually adjust such weights, biases, coefficients, or other parameters. The update may be performed using one or more backpropagation algorithms in the neural network. Iterative and / or recursive updating of weights, biases, coefficients, or other parameters as described above may be performed until the currently available training data is exhausted and / or a convergence test is passed, which is a test of a condition selected as an indication that the model and / or its weights, biases, coefficients, or other parameters have reached a certain degree of accuracy. The convergence test may, for example, compare the difference between two or more successive errors or error function values, where a difference below a threshold amount may be taken to indicate convergence. Alternatively or additionally, one or more errors and / or error function values evaluated in a training iteration may be compared to a threshold value.
[0072] With further reference to FIG. 2, a computing device, processor, and / or module may be configured to perform the methods, method steps, sequences of method steps, and / or algorithms described with reference to this figure in any order and with any degree of repetition. For example, a computing device, processor, and / or module may be configured to repeatedly perform a single step, sequence, and / or algorithm until a desired or commanded result is achieved. The repetition of a step or sequence of steps may be performed iteratively and / or recursively using the output of a previous iteration as input to a subsequent iteration, aggregating the inputs and / or outputs of the iterations to generate an aggregate result, decreasing or decrementing one or more variables, such as a global variable, and / or dividing a larger processing task into a set of smaller processing tasks that are addressed iteratively. A computing device, processor, and / or module may perform any step, sequence of steps, or algorithm in parallel, such as performing a step simultaneously and / or substantially simultaneously over two or more times using two or more parallel threads, processor cores, etc. The division of tasks among parallel threads and / or processes may be performed according to any protocol suitable for dividing tasks among iterations. Those skilled in the art will recognize upon reading this entire disclosure the various ways in which operations, sequences of operations, processing tasks, and / or data may be subdivided, shared, or otherwise processed using iterative, recursive, and / or parallel processing.
[0073] With further reference to FIG. 2, the machine learning process may include at least one unsupervised machine learning process 232. An unsupervised machine learning process, as used herein, is a process that derives inferences within a dataset without regard to labels. As a result, an unsupervised machine learning process may be free to discover any structure, relationships, and / or correlations provided in the data. An unsupervised process may not require a response variable, and an unsupervised process may be used to find patterns of interest and / or inferences between variables, determine the degree of correlation between two or more variables, etc.
[0074] With further reference to FIG. 2, the machine learning module 200 may be designed and configured to create the machine learning model 224 using techniques for developing linear regression models. The linear regression model may include ordinary least squares regression, which aims to minimize the square of the difference between the predicted outcome and the actual outcome according to an appropriate norm for measuring such difference (e.g., vector space distance norm). The coefficients of the resulting linear equation may be modified to improve the minimization. The linear regression model may include a ridge regression method, where the function to be minimized includes a least squares function and a term that multiplies the square of each coefficient by a scalar amount to penalize large coefficients. The linear regression model may include a Least Absolute Shrinkage and Selection Operator (LASSO) model, where a ridge regression is combined with a least squares term multiplied by a factor of 1 divided by 2 times the number of samples. The linear regression model may include a multitask lasso model, where the norm applied to the least squares term of the lasso model is the Frobenius norm, which corresponds to the square root of the sum of the squares of all the terms. The linear regression model may include an elastic net model, a multitask elastic net model, a least angle regression model, a LARS lasso model, an orthogonal match pursuit model, a Bayesian regression model, a logistic regression model, a stochastic gradient descent model, a perceptron model, a passive aggression algorithm, a robustness regression model, a Huber regression model, or any other suitable model that may occur to one of skill in the art upon perusal of this disclosure in its entirety. The linear regression model may be generalized to a polynomial regression model in some embodiments, whereby a polynomial (e.g., quadratic, cubic, or higher order equation) that provides the best predicted / actual output fit is found. As will be apparent to one of skill in the art upon perusal of this disclosure in its entirety, methods similar to those described above may be applied to minimize the error function.
[0075] With continued reference to FIG. 2 , the machine learning algorithm may include, but is not limited to, linear discriminant analysis. The machine learning algorithm may include quadratic discriminant analysis. The machine learning algorithm may include kernel ridge regression. The machine learning algorithm may include support vector machines, including but not limited to support vector classification based regression processes. The machine learning algorithm may include stochastic gradient descent algorithms, including classification and regression algorithms based on stochastic gradient descent. The machine learning algorithm may include nearest neighbor algorithms. The machine learning algorithm may include various forms of latent space regularization, such as variational regularization. The machine learning algorithm may include Gaussian processes, such as Gaussian process regression. The machine learning algorithm may include cross decomposition algorithms, including partial least squares and / or canonical correlation analysis. The machine learning algorithm may include naive Bayes methods. The machine learning algorithm may include decision tree based algorithms, such as decision tree classification or regression algorithms. The machine learning algorithm may include ensemble methods, such as backing meta-estimators, randomized forests of trees, Adaboost, gradient tree boosting, and / or voting classifier methods. The machine learning algorithms may include neural net algorithms, including convolutional neural net processes.
[0076] With further reference to FIG. 2, the machine learning model and / or process may be deployed or instantiated by incorporating it into a program, device, system, and / or module. For example, but not limited to, the machine learning model, neural network, and / or some or all of its parameters may be stored and / or deployed in any memory or circuit. Parameters such as coefficients, weights, and / or biases may be stored as circuit-based constants such as an array of wires and / or binary inputs and / or outputs set to logic "1" and "0" voltage levels in a logic circuit to represent numbers according to any suitable encoding system, including two's complement, or may be stored in any volatile and / or non-volatile memory. Similarly, mathematical operations and inputs of data to and / or outputs of data from the model, neural network layers, etc. may be instantiated in hardware circuits and / or in the form of instructions in firmware, machine code such as binary opcode instructions, assembly language, or any higher-level programming language. The machine learning process and / or model may be instantiated using any technique for hardware and / or software instantiation of memory, instructions, data structures, and / or algorithms, including, but not limited to, generating and / or configuring non-reconfigurable hardware elements, circuits, and / or modules, such as, but not limited to, ASICs; generating and / or configuring reconfigurable hardware elements, circuits, and / or modules, such as, but not limited to, FPGAs; generating and / or configuring non-reconfigurable and / or non-rewritable memory elements, circuits, and / or modules, such as, but not limited to, non-rewritable ROMs; generating and / or configuring reconfigurable and / or rewritable memory elements, circuits, and / or modules, such as, but not limited to, rewritable ROMs or other memory technologies described in this disclosure; and / or generating and / or configuring any computing device and / or components thereof, any combination of which are described in this disclosure.Such deployed and / or instantiated machine learning models and / or algorithms may receive inputs from, and generate output to, any other processes, modules, and / or components described in this disclosure.
[0077] 2, any process of training, retraining, deployment, and / or instantiation of any machine learning model and / or algorithm may be performed and / or repeated after initial deployment and / or instantiation to modify, refine, and / or improve the machine learning model and / or algorithm. Such retraining, deployment, and / or instantiation may be performed as a periodic or periodic process, such as retraining, deployment, and / or instantiation at regular elapsed periods, after some measure of quantity, such as number of bytes or other measure of data processed, number of uses or executions of the processes described in this disclosure, and / or according to a software, firmware, or other update schedule. Alternatively or additionally, retraining, deployment, and / or instantiation may be event-based and may be triggered, without limitation, by user input indicating suboptimal or otherwise problematic performance and / or by an automated field testing and / or audit process, which may compare the output of the machine learning model and / or algorithm and / or its error and / or error function to any threshold, convergence test, etc., and / or compare the output of the processes described herein to similar thresholds, convergence tests, etc. Event-based retraining, deployment, and / or instantiation may alternatively or additionally be triggered by the receipt and / or generation of one or more new training examples. Some new training examples may be compared to pre-configured thresholds, and exceeding the pre-configured thresholds may trigger retraining, deployment, and / or instantiation.
[0078] With further reference to FIG. 2, retraining and / or additional training may be performed using any process for training described above, using any current or previously deployed version of the machine learning model and / or algorithm as a starting point. Training data for retraining may be collected, preconditioned, sorted, classified, sanitized, or otherwise processed according to any process described in this disclosure. Training data may include, without limitation, training examples including inputs and correlation outputs used, received, and / or generated from any version of any system, module, machine learning model or algorithm, apparatus, and / or method described in this disclosure. Such examples may be modified and / or labeled according to user feedback or other processes, and may indicate desired results and / or have actual or measured results from the process being modeled and / or predicted by the system, module, machine learning model or algorithm, apparatus, and / or method as “desired” results, which are compared to the output of the training process as described above.
[0079] Redeployment may be performed using any reconfiguration and / or rewriting of reconfigurable and / or rewriteable circuitry and / or memory elements, or redeployment may be performed by the generation of new hardware and / or software components, circuits, instructions, etc., which may be added to and / or replace existing hardware and / or software components, circuits, instructions, etc.
[0080] With further reference to FIG. 2, one or more processes or algorithms described above may be implemented by at least a dedicated hardware unit 232. For purposes of this figure, a "dedicated hardware unit" is a hardware component, circuitry, etc., other than a main control circuit and / or processor that performs method steps as described in this disclosure, that is specifically designated or selected to perform one or more specific tasks and / or processes described with reference to this figure, such as, but not limited to, preconditioning and / or sanitizing training data and / or training machine learning algorithms and / or models. The dedicated hardware unit 232 may include hardware units that can efficiently use, but are not limited to, pipelining, parallel processing, etc. to perform repetitive or intensive calculations, such as matrix-based calculations for updating or adjusting parameters, weights, coefficients, and / or biases of machine learning models and / or neural networks. Such hardware units may be optimized for such processing, for example, by including dedicated circuitry for matrix and / or signal processing operations, including multiple arithmetic and / or logic circuit units, such as, for example, multipliers and / or adders, that can operate simultaneously and / or in parallel. Such special-purpose hardware units 232 may include, but are not limited to, graphical processing units (GPUs), special-purpose signal processing modules, FPGAs, or other reconfigurable hardware configured to instantiate parallel processing units for one or more specific tasks, and a computing device, processor, apparatus, or module may be configured to instruct one or more special-purpose hardware units 232 to perform one or more operations described herein, such as evaluation of model and / or algorithmic outputs, one-time or iterative updates to parameters, coefficients, weights, and / or biases, and / or any other operations, such as vector and / or matrix operations as described in this disclosure.
[0081] Referring now to FIG. 3, an exemplary diagnostic database 300 is illustrated by a block diagram. In an embodiment, any past or current version of any data disclosed herein may be stored in the diagnostic database 300, including, but not limited to, ECG signals 108, lead systems, transformed coordinates, cardiac vectors 120, vector ECG images 124, past vector ECG images, diagnostic features, diagnostic labels 132, confidence scores, diagnostic reports, and the like. The processor 104 may be communicatively coupled to the diagnostic database 300. For example, in some cases, the database 300 may be local to the processor 104. Alternatively or additionally, in some cases, the database 300 may be remote from the processor 104 and in communication with the processor 104 via one or more networks. The networks may include, but are not limited to, cloud networks, mesh networks, and the like. By way of example, a "cloud-based" system, as that term is used herein, may refer to a system that includes software and / or data that is stored, managed, and / or processed not on a local server or personal computer, but on a network of remote servers hosted in the "cloud," e.g., via the Internet. As used in this disclosure, a "mesh network" is a local network topology in which the infrastructure processor 104 connects directly, dynamically, and non-hierarchically to as many other computing devices as possible. As used in this disclosure, a "network topology" is an arrangement of elements of a communications network. The diagnostic database 300 may be implemented as a key-value lookup database, such as, but not limited to, a relational database, a non-relational (Not Only Structured Query Language (NOSQL) database, or any other format or structure for use as a database that one of ordinary skill in the art would recognize as suitable upon review of this entire disclosure. The diagnostic database 300 may alternatively or additionally be implemented using distributed data storage protocols and / or data structures, such as distributed hash tables.The diagnostic database 300 may include a plurality of data entries and / or records as described above. The data entries in the database may be flagged with or linked to one or more additional elements of information, which may be reflected in data entry cells and / or linked tables, such as tables related by one or more indexes in a relational database. Those skilled in the art will recognize upon review of this disclosure in its entirety the various ways in which data entries in a database may store, search, organize, and / or reflect data and / or records as used herein, as well as categories and / or populations of data consistent with this disclosure.
[0082] Referring now to FIG. 4, an exemplary embodiment of a neural network 400 is illustrated. A neural network 400, also known as an artificial neural network, is a network of "nodes", i.e., data structures having one or more inputs, one or more outputs, and a function that determines the output based on the inputs. Such nodes may be organized into a network, such as, but not limited to, a convolutional neural network, including an input layer of nodes 404, one or more hidden layers 408, and an output layer of nodes 412. The connections between the nodes may be generated through a process of "training" the network, where elements from a training data set are applied to the input nodes, and then a suitable training algorithm (such as Levenberg-Marquardt, conjugate gradient, simulated annealing, or other algorithms) is used to adjust the connections and weights between nodes in adjacent layers of the neural network to generate desired values at the output nodes. This process is sometimes referred to as deep learning. The connections may run only from the input nodes to the output nodes in a "feed-forward" network, or may feed back the output of one layer to the input of the same or a different layer in a "regression network." As a further non-limiting example, a neural network may include a convolutional neural network that comprises an input layer of nodes, one or more hidden layers, and an output layer of nodes. As used in this disclosure, a "convolutional neural network" is a neural network in which at least one hidden layer is a convolutional layer that convolves the input to that layer with a subset of the inputs known as "kernels," along with one or more additional layers, such as pooling layers, fully connected layers, etc.
[0083] 5, an exemplary embodiment of a node of a neural network is illustrated. The node may include multiple inputs xi that may receive values from, but are not limited to, inputs to the neural network containing the node and / or from other nodes. The node may perform a weighted sum of the inputs with weights wi multiplied by the respective inputs xi. Additionally or alternatively, a bias b may be added to the weighted sum of the inputs, thereby adding an offset to each unit in the neural network layer that is independent of the input to the layer. The weighted sum may then be input to a function φ, which may generate one or more outputs y. The weights wi applied to the inputs xi may indicate whether the input is "excitatory", e.g., by the corresponding weight having a large numerical value, indicating that the input has a strong influence on one or more outputs y, and / or "inhibitory", e.g., by the corresponding weight having a small numerical value, indicating that the input has a weak influence on another input y. The values of the weights wi may be determined by training the neural network using training data, which may be implemented using any suitable process, such as those described above.
[0084] 6, an exemplary embodiment of a fuzzy set comparison 600 is illustrated. In a non-limiting embodiment, the fuzzy set comparison. In a non-limiting embodiment, the fuzzy set comparison 600 may correspond to the fuzzy set comparison of FIG. 1. In another non-limiting example, the fuzzy set comparison 600 may correspond to name / version matching as described herein. For example, but not by way of limitation, the parameters, weights, and / or coefficients of the membership functions may be adjusted using any machine learning method for name / version matching as described herein. In another non-limiting embodiment, the fuzzy sets may represent the vector electrocardiogram image 124 from FIG. 1 and a past vector electrocardiogram image.
[0085] Alternatively or additionally, and still referring to FIG. 6, a fuzzy set comparison 600 may be generated as a function for determining a data compatibility threshold. The compatibility threshold may be determined by a computing device. In some embodiments, the computing device may use a logic comparison program, such as, but not limited to, a fuzzy logic model, to determine the compatibility threshold and / or version qualifier. Each such compatibility threshold may be represented as a value of a post variable representing the compatibility threshold, or in other words, as a fuzzy set as described above corresponding to a degree of compatibility and / or acceptability as calculated using statistical methods, machine learning methods, or other methods that may occur to one of ordinary skill in the art upon review of this disclosure in its entirety. In some embodiments, determining the compatibility threshold and / or version qualifier may include using a linear regression model. The linear regression model may include a machine learning model. A linear regression model may map a statistical value, such as, but not limited to, the frequency of version numbers in the same range, to a compatibility threshold and / or version qualifier. In some embodiments, determining the compatibility threshold of any post may include using a classification model. The classification model may be configured to input the collected data and cluster data into centers based on, but not limited to, frequency of occurrence of version number ranges, linguistic indicators of compatibility and / or acceptability, etc. The centers may include scores assigned to them, whereby the suitability thresholds may each be assigned a score. In some embodiments, the classification model may include a K-means clustering model. In some embodiments, the classification model may include a particle swarm optimization model. In some embodiments, determining the compatibility thresholds may include using a fuzzy inference engine. The fuzzy inference engine may be configured to map one or more compatibility thresholds using fuzzy logic. In some embodiments, the multiple computing devices may be arranged in a compatibility array by a logical comparison program.As used in this disclosure, a "compatibility arrangement" is any grouping of objects and / or data based on skill level and / or output score. The membership function coefficients and / or constants as described above may be adjusted according to a classification and / or clustering algorithm. For example, but not by way of limitation, a clustering algorithm may determine a Gaussian or other distribution of questions about whose centers correspond to a given compatibility threshold and / or version authenticator, and an iterative approach or other method may be used to find a membership function of any membership function type as described above that minimizes the average error from a statistically determined distribution, such as, for example, a triangular function or Gaussian membership function about whose center represents the center of the distribution that best fits the distribution. The error function to be minimized and / or the method of minimization may be implemented according to, but not by way of limitation, an error function and / or error function minimization process and / or method as described in this disclosure.
[0086] 6, the inference engine may be implemented according to the input of the plurality of cardiac vectors 120 and / or vector electrocardiogram images 124 and the plurality of past vector electrocardiogram images. For example, the receiving variable may represent a first measurable value for the classification of the plurality of vector electrocardiogram images 124 into past vector electrocardiogram images. Continuing with this example, the output variable may represent at least one diagnostic label 132. In an embodiment, the plurality of vector electrocardiogram images 124 and / or past vector electrocardiogram images may be represented by their own fuzzy sets. In another embodiment, the evaluation factor may be represented as a function of the intersection of two fuzzy sets, as shown in FIG. 6, and the inference engine may combine any semantic versioning, semantic language, version range, etc. rules thereof. The degree to which a given input function membership matches a given rule may be determined by triangular norms or "T-norms" of the output function with the rule or input function that satisfy the requirements of commutativity (T(a,b)=T(b,a)), monotonicity (if a≦c and b≦d, T(a,b)≦T(c,d)), (associativeness T(a,T(b,c))=T(T(a,b),c)), and the number 1 acting as an identity, such as min(a,b), product of a and b, drastic product of a and b, Hamacher product of a and b, etc. Rule combination (the "and" or "or" combination of rule membership determinations) may be performed using any T-conorm, as represented by the inverted T symbol or "⊥", such as max(a,b), probabilistic sum of a and b (a+ba*b), bounded sum, and / or drastic T-conorm. Any T-conorm may be used that satisfies the following properties: if a≦c and b≦d, then commutativity is ⊥(a,b)=⊥(b,a), monotonicity is ⊥(a,b)≦⊥(c,d), associativity is ⊥(a,⊥(b,c))=⊥(⊥(a,b),c), and identity is 0. Alternatively or additionally, T-conorms may be approximated by sums, such as in a "sum-of-products" inference engine where T-norms are products and T-conorms are sums.A final output score or other fuzzy inference output may be determined from the output membership functions described above using any suitable defuzzing process, including, but not limited to, average of maximum defuzzing, geometric center / centroid defuzzing, median mean defuzzing, geometric bisector defuzzing, etc. Alternatively or additionally, the output rules may be replaced with functions according to a Takagi-Sugeno-King (TSK) fuzzy model.
[0087] The first fuzzy set 604 may be represented according to a first membership function 608 that represents the probability that an input that falls within the first range of values 612 is a member of the first fuzzy set 604, where the first membership function 608 has values in a range of probabilities, such as, but not limited to, the interval [0,1], and the area under the first membership function 608 may represent the set of values in the first fuzzy set 604. In this exemplary depiction, the first range of values 612 is illustrated as a range on a single numerical line or axis for clarity, however, the first range of values 612 may be defined in two or more dimensions, e.g., representing a Cartesian product between multiple ranges, curves, axes, spaces, dimensions, etc. The first membership function 608 may include any suitable function that maps the first range 612 to a probability interval, including, but not limited to, a triangular function defined by two linear elements, such as a line segment or plane that intersect at or below the top of the probability interval. As a non-limiting example, the triangle membership function may be defined as follows:
number
number
number
number
number
[0088] The first fuzzy set 604 may represent any value or combination of values as described above, including any of the vector electrocardiogram images 124 and past vector electrocardiogram images. The second fuzzy set 616, which may represent any value that may be represented by the first fuzzy set 604, may be defined by a second membership function 620 on a second range 624. The second range 624 may be identical to and / or overlap with the first range 612 and / or may be combined with the first range, such as via a Cartesian product, to generate a mapping that allows for an assessment of the overlap between the first fuzzy set 604 and the second fuzzy set 616. If the first fuzzy set 604 and the second fuzzy set 616 have an overlapping area 636, the first membership function 608 and the second membership function 620 may intersect at a point 632 that represents a probability of a match between the first fuzzy set 604 and the second fuzzy set 616, as defined on a probability interval. Alternatively or additionally, a single value of the first fuzzy set and / or the second fuzzy set may be located on a locus 636 on the first range 612 and / or the second range 624, in which case a probability of membership may be obtained by evaluation of the first membership function 608 and / or the second membership function 620 at that range point. The probability at 628 and / or 632 may be compared to a threshold 640 to determine whether a positive match is indicated. The threshold 640 may represent, in a non-limiting example, a degree of match between the first fuzzy set 604 and the second fuzzy set 616 and / or a single value therein with respect to each other or a single value belonging to either set, which is sufficient for the purpose of the matching process. For example, the assignment of at least one diagnostic label 132 may indicate a sufficient degree of overlap between the plurality of vector electrocardiogram images 124 and the fuzzy set representing the past vector electrocardiogram images for the combination to occur as described above. Each threshold may be established by one or more user inputs. Alternatively or additionally, each threshold may be adjusted by, for example, but not by way of limitation, machine learning and / or statistical processes, as described in more detail below.
[0089] In an embodiment, the degree of match between the fuzzy sets may be used to rank one resource against another. For example, if both the multiple vector electrocardiogram images 124 and the past vector electrocardiogram images have fuzzy sets, at least one diagnostic label 132 may be assigned by having an overlap degree exceeding a prediction threshold, and the processor 104 may further rank the two resources by ranking the resource with a higher degree of match higher than the resource with a lower degree of match. If multiple fuzzy matches are performed, the degree of match of each individual fuzzy set may be calculated and aggregated, for example through addition, averaging, etc., to determine an overall degree of match, which may be used to rank the resources. A selection between two or more matching resources may be performed by selecting the highest ranked resource, and / or multiple notifications may be presented to the user in ranking order.
[0090] 7A-7C, an exemplary embodiment of a visual representation of a transformed ECG over three overlapping time slices is shown. In some cases, the input ECG may be a multi-lead ECG, e.g., a set of 12 leads. Alternatively, the input ECG may include a subset of lead signals, e.g., a single-lead ECG. An exemplary input ECG may include 5,000 samples of 8 leads (5,000×8 [e.g., 500 Hz sampling over 10 seconds]). The input ECG may be transformed by a matrix of appropriate dimensions. For example, an exemplary 5,000 sample 8-lead (5,000×8) input ECG may be transformed by a matrix of dimensions 8×3 resulting in a 5,000×3 matrix. In general, there are no constraints regarding the transformation used. However, a transformed vector that is advantageous for visual representation and further processing (e.g., feature detection) may be smooth along the time axis, which represents an important property that helps to make true detection of normality and possible disease. In some cases, there is no constraint on reducing the dimensionality (i.e., size) of the ECG data (e.g., number of leads) while preserving the time axis during the transformation. In some cases, transformation to a two-dimensional or three-dimensional output ECG facilitates visual interpretation.
[0091] 7A-7C, a transformed ECG may be shown. A visual representation of the transformed ECG may be presented by a vector projection. For example, the vector projection of the transformed ECG may be rendered on a particular plane. FIGS. 7A-7B illustrate vector projections of the transformed ECG on an orthogonal plane. In some cases, the orthogonal plane may include any plane described in this disclosure, such as, but not limited to, the sagittal plane, the transverse plane, and the frontal plane.
[0092] In FIG. 7A, each vector is shown rendered from the origin to the location of the vector's head. In some cases, this rendering is similar to rendering all vectors located at the origin. Rendering the head location can be useful for human interpretation in some cases. Alternatively or additionally, the vector head can be plotted alone with each corresponding vector starting from the origin. In FIG. 7B, each vector is shown rendered as a vector field showing both magnitude and direction. With reference to FIG. 7A-7B, in some cases, the visualized vectors may be shown terminating in vector loops to account for the location of loop points. Alternatively or additionally, as shown in FIG. 8 below, the origin of the vector may be located at the vector loop, suggesting that the vector is describing a tangent envelope (e.g., a velocity vector) to the loop.
[0093] 7A-7C, visual representations of specific projections may be rendered consecutively across time slices with easily interpretable characteristics compared to the corresponding ECG renditions. In some cases, the consecutive time slice renditions may be converted to video. The evolution of the spatial visual representation shape of each time slice over time may reduce cognitive overload of human feature extraction and improve detectability of anomalies that span both single and multiple leads collectively over time.
[0094] 7C illustrates a two-dimensional representation of each dimension of the three-dimensional transformed ECG, with amplitude along the horizontal axis and time along the vertical axis. Visual representations according to those shown in FIG. 7C may show the transformed ECG in sagittal, transverse, and coronal planes. Visual representations according to those shown in FIG. 7C may show the transformed ECG over one or more cardiac cycles.
[0095] Referring again to FIGS. 7A-7C, in some cases, the visual representation may enable a machine learning process that uses the transformed ECG and / or the visual representation of the transformed ECG as input. The machine learning process may include any machine learning process described in this disclosure. Exemplary machine learning processes may include feature detectors for Scale Invariant Feature Transform (SIFT), Canny edge detection, Shy-Tomasi corner detection, and the like. In some cases. For example, in some embodiments, the visual representation of the transformed ECG, such as the one shown in FIGS. 7A-7C, may be input to an image classifier (e.g., supervised training or self-supervised learning) with or without an intervening feature detection step. In some cases, the visual representation of the transformed ECG may be used as input to a machine learning process paired with the corresponding text.
[0096] Referring now to FIG. 8, another diagram of an exemplary embodiment of a vector electrocardiogram image is shown. The display device 140 may display the vector electrocardiogram images 124 in a graphical format to facilitate visual comparison. In some cases, the vector electrocardiogram images 124 may be superimposed on top of one another or displayed side-by-side for visual inspection and evaluation of similarities or differences. Graphical representations such as vector loops or waveform plots may be used to aid in the comparison. In some cases, the display device 140 may display the vector electrocardiogram images 124 in an annotated format with diagnostic features and diagnostic labels 132. The vector electrocardiogram images 124 provide valuable insight into the magnitude and direction of the cardiac vectors 120 during the cardiac cycle. Several diagnostic features may be identified in the vector electrocardiogram images 124. The loop shape and size are indicative of overall cardiac performance. The axial deviation, represented by the angle of the loop, may suggest an abnormality such as left ventricular hypertrophy or right ventricular strain. The rotation of the loop may reveal bundle branch block or ventricular tachycardia. The spatial distribution of the electrical vectors is useful for assessing the location of ventricular enlargement or myocardial infarction. Each of these diagnostic features may be associated with one or more diagnostic labels 132. Diagnostic labels 132 associated with the vector ECG image 124 may include normal sinus rhythm, atrial fibrillation, myocardial ischemia, ventricular hypertrophy, and bundle branch block. Analysis of the diagnostic features and diagnostic labels 132 in the vector ECG image 124 aids in diagnosing various cardiac disorders and directing appropriate treatment strategies.
[0097] Referring now to FIG. 9 , a block diagram depicts an exemplary system 900 for comparing the usefulness of ECG transformations in classification. The system 900 may receive ECG data 904. The ECG data 904 may include a 12-lead ECG. The system 900 may perform a machine learning process 908 and classification 912 on the ECG data 904. The machine learning process 908 and classification 912 may include any machine learning process, model, classifier, etc. described in this disclosure. The system 900 may further transform 916 the ECG data. By way of example and not limitation, the system 900 may transform 916 the ECG data into a vector electrocardiogram. The system 900 may classify 912 the transformed ECG data using a comparable machine learning process 908. For example, the system may use a transformer model to classify the combined vector representation by cardiac disease. The system 900 may compare 920 the classification results 912 to the raw ECG data and the transformed data 916. In some cases, transforming 916 the ECG data allows for improved classification.
[0098] 10, a flow diagram of an exemplary method 1000 for improving the visual representation of an electrocardiogram is illustrated. At step 1005, the method 1000 includes receiving, using at least one processor, a plurality of electrocardiogram signals from a user, each electrocardiogram signal of the plurality of electrocardiogram signals being generated using at least one sensor of a plurality of sensors attached to the user. This may be implemented as described with reference to FIGS. 1-9.
[0099] 10, at step 1010, the method 1000 includes receiving, using the at least one processor, at least one transformation matrix, which may be implemented as described with reference to FIGS.
[0100] 10, at step 1015, method 1000 includes transforming, using the at least one processor, the plurality of electrocardiogram signals into cardiac vectors as a function of the at least one transformation matrix. This may be implemented as described with reference to FIGS. 1-9. In some embodiments, the method may include sorting, using the at least one processor, each electrocardiogram signal of the plurality of electrocardiogram signals into at least one lead system. The at least one lead system may include a first group.
[0101] 10, at step 1020, the method 1000 includes generating, using the at least one processor, a vector electrocardiogram image as a function of the cardiac vector, which may be implemented as described with reference to FIGS.
[0102] 10, at step 1025, method 1000 includes using the at least one processor to assign at least one diagnostic label to the patient as a function of the vector electrocardiogram image. This may be implemented as described with reference to FIGS. 1-9. In some embodiments, the method may include using the at least one processor to generate a confidence score as a function of the assignment of the at least one diagnostic label. In other embodiments, the method may include using the at least one processor to generate a diagnostic report as a function of the at least one diagnostic label and the vector electrocardiogram image. In some cases, assigning the at least one diagnostic label to the patient includes identifying a plurality of previous vector electrocardiogram images as a function of the patient profile and assigning the at least one diagnostic label as a function of a comparison between the transformed electrocardiogram and the plurality of previous vector electrocardiogram images. The method may include using the at least one processor to identify a diagnostic feature as a function of the vector electrocardiogram image and a plurality of previous vector electrocardiogram images. In some embodiments, assigning the at least one diagnostic label includes assigning the at least one diagnostic label using an assignment machine learning model. Assigning the at least one diagnostic label using the assignment machine learning model may include training the assignment machine learning model using assignment training data that includes a plurality of data entries including the vector electrocardiogram image and the patient profile as inputs that correlate to the at least one diagnostic label as output.
[0103] It should be noted that any one or more of the aspects and embodiments described herein may be conveniently implemented using one or more machines (e.g., one or more computing devices utilized as user computing devices for electronic documents, one or more server devices, such as document servers, etc.) programmed in accordance with the teachings herein, as would be apparent to one of ordinary skill in the computer arts. As would be apparent to one of ordinary skill in the software arts, appropriate software coding may be readily prepared by skilled programmers based on the teachings of the present disclosure. The above-discussed aspects and implementations employing software and / or software modules may also include appropriate hardware to assist in the implementation of the machine-executable instructions of the software and / or software modules. Such software may be a computer program product employing a machine-readable storage medium, which may be any medium capable of storing and / or encoding a sequence of instructions for execution by a machine (e.g., a computing device) causing said machine to implement any one of the methodologies and / or embodiments described herein. Examples of machine-readable storage media include, but are not limited to, magnetic disks, optical disks (e.g., Compact Discs (CDs), Recordable Compact Discs (CD-Rs), Digital Versatile Discs (DVDs), Recordable Digital Versatile Discs (DVD-Rs), etc.), magneto-optical disks, Read-Only Memory (ROM) devices, Random Access Memory (RAM) devices, magnetic cards, optical cards, solid-state memory devices, Erasable Programmable Read-Only Memory (EPROMs), Electrically Erasable Programmable Read-Only Memory (EEPROMs), and any combination thereof. As used herein, machine-readable media is intended to include a single medium as well as a collection of physically separate media, examples of which include, for example, a compact disc in combination with a computer memory, or a collection of one or more hard disk drives. As used herein, machine-readable storage media does not include transitory forms of signal transmissions.
[0104] Such software may also include information (e.g., data) carried as a data signal on a data carrier, such as a carrier wave. For example, machine-executable information may be embodied in a data carrier, where the signal encodes a sequence of instructions, or portions thereof, for execution by a machine (e.g., a computing device), and any associated information (e.g., data structures and data) that cause the machine to perform any one of the methodologies and / or embodiments described herein.
[0105] Examples of computing devices include, but are not limited to, e-book readers, computer workstations, terminal computers, server computers, handheld devices (e.g., tablet computers, smartphones, etc.), web appliances, network routers, network switches, network bridges, any machine capable of executing a sequence of instructions that specify actions that the machine should take, and any combination thereof. In one example, a computing device may include and / or be included in an automated ticket machine.
[0106] 11 shows a schematic representation of one embodiment of a computing device in the exemplary form of a computer system 1100 upon which a set of instructions for causing a control system to perform any one or more of the aspects and / or methodologies of the present disclosure may be executed. It is also envisioned that multiple computing devices may be utilized to implement a set of instructions specifically configured for causing one or more of said devices to perform any one or more of the aspects and / or methodologies of the present disclosure. The computer system 1100 includes a processor 1104 and a memory 1108 that communicate with each other and with other components via a bus 1112. The bus 1112 may include any of several types of bus structures, including, but not limited to, a memory bus, a memory controller, a peripheral bus, a local bus, and any combination thereof using any of a variety of bus architectures.
[0107] The processor 1104 may include any suitable processor, such as, but not limited to, a processor incorporating logic circuitry for performing arithmetic and logical operations, such as an Arithmetic and Logic Unit (ALU), which may be coordinated with a state machine and directed by operational inputs from memory and / or sensors. The processor 1104 may be organized according to the Von Neumann and / or Harvard architectures, as non-limiting examples. The processor 1104 may include, incorporate, and / or be incorporated in, without limitation, a microcontroller, a microprocessor, a Digital Signal Processor (DSP), a Field Programmable Gate Array (FPGA), a Complex Programmable Logic Device (CPLD), a Graphical Processing Unit (GPU), a general purpose GPU, a Tensor Processing Unit (TPU), an analog or mixed signal processor, a Trusted Platform Module (TPM), a Floating Point Unit (FPU), and / or a System on a Chip (SoC).
[0108] The memory 1108 may include a variety of components (e.g., machine-readable media), including, but not limited to, random access memory components, read-only components, and any combination thereof. In one example, a basic input / output system 1116 (BIOS), containing the basic routines that help to transfer information between elements within the computer system 1100, such as during start-up, may be stored in the memory 1108. The memory 1108 may also include instructions (e.g., software) 1120 (e.g., stored on one or more machine-readable media) that embody any one or more of the aspects and / or methodologies of the present disclosure. In another example, the memory 1108 may further include any number of program modules, including, but not limited to, an operating system, one or more application programs, other program modules, program data, and any combination thereof.
[0109] The computer system 1100 may also include a storage device 1124. Examples of storage devices (e.g., storage device 1124) include, but are not limited to, hard disk drives, magnetic disk drives, optical disk drives in combination with optical media, solid-state memory devices, and any combination thereof. The storage device 1124 may be connected to the bus 1112 by an appropriate interface (not shown). Exemplary interfaces include, but are not limited to, Small Computer System Interface (SCSI), Advanced Technology Attachment (ATA), Serial ATA, Universal Serial Bus (USB), IEEE 1394 (FIREWIRE®), and any combination thereof. In one example, the storage device 1124 (or one or more components thereof) may be removably interfaced with the computer system 1100 (e.g., via an external port connector (not shown)). In particular, storage devices 1124 and associated machine-readable media 1128 may provide non-volatile and / or volatile storage of machine-readable instructions, data structures, program modules, and / or other data for computer system 1100. In one example, software 1120 may reside, completely or partially, within machine-readable media 1128. In another example, software 1120 may reside, completely or partially, within processor 1104.
[0110] Computer system 1100 may also include input devices 1132. In one example, a user of computer system 1100 may input commands and / or other information into computer system 1100 via input devices 1132. Examples of input devices 1132 include, but are not limited to, alphanumeric input devices (e.g., keyboards), pointing devices, joysticks, gamepads, audio input devices (e.g., microphones, voice response systems, etc.), cursor control devices (e.g., mice), touchpads, optical scanners, video capture devices (e.g., still cameras, video cameras), touch screens, and any combination thereof. Input devices 1132 may be interfaced to bus 1112 via any of a variety of interfaces (not shown), including, but not limited to, a serial interface, a parallel interface, a game port, a USB interface, a FIREWIRE® interface, a direct interface to bus 1112, and any combination thereof. The input device 1132 may include a touch screen interface, which may be part of or separate from the display 1136, as discussed further below. The input device 1132 may be utilized as a user selection device for selecting one or more graphical representations within the graphical interface, as described above.
[0111] A user may also input commands and / or other information to the computer system 1100 via a storage device 1124 (e.g., a removable disk drive, a flash drive, etc.) and / or a network interface device 1140. A network interface device, such as the network interface device 1140, may be utilized to connect the computer system 1100 to one or more of a variety of networks, such as the network 1144, and one or more remote devices 1148 connected thereto. Examples of network interface devices include, but are not limited to, a network interface card (e.g., a mobile network interface card, a local area network (LAN) card), a modem, and any combination thereof. Examples of networks include, but are not limited to, a wide area network (e.g., the Internet, a corporate network), a local area network (e.g., a network associated with an office, building, campus, or other relatively small geographic space), a telephone network, a data network associated with a telephone / voice provider (e.g., a mobile communications provider data and / or voice network), a direct connection between two computing devices, and any combination thereof. A network such as network 1144 may employ wired and / or wireless communication modes. In general, any network topology may be used. Information (eg, data, software 1120 , etc.) may be communicated to and from computer system 1100 via network interface device(s) 1140 .
[0112] Computer system 1100 may further include a video display adapter 1152 for communicating displayable images to a display device, such as display device 1136. Examples of display devices include, but are not limited to, a Liquid Crystal Display (LCD), a Cathode Ray Tube (CRT), a plasma display, a Light Emitting Diode (LED) display, and any combination thereof. A display adapter 1152 and a display device 1136 may be utilized in combination with the processor 1104 to provide graphical representations of aspects of the disclosure. In addition to a display device, the computer system 1100 may include one or more other peripheral output devices, including, but not limited to, audio speakers, printers, and any combination thereof. Such peripheral output devices may be connected to the bus 1112 via a peripheral interface 1156. Examples of peripheral interfaces include, but are not limited to, a serial port, a USB connection, a FIREWIRE® connection, a parallel connection, and any combination thereof.
[0113] The foregoing is a detailed description of exemplary embodiments of the present invention. Various modifications and additions can be made without departing from the spirit and scope of the present invention. Each feature of the various embodiments described above may be combined with features of other described embodiments as necessary to provide multiple feature combinations in related new embodiments. Moreover, while the foregoing describes several separate embodiments, what has been described herein is merely illustrative of the application of the principles of the present invention. Furthermore, although certain methods herein may be illustrated and / or described as being performed in a specific order, said order may be significantly altered within the skill of the art to achieve the methods, systems, and software according to the present disclosure. Thus, this description is meant to be taken only as an example, and not to otherwise limit the scope of the present invention.
[0114] Exemplary embodiments are disclosed above and illustrated in the accompanying drawings. Those skilled in the art will appreciate that various modifications, omissions, and additions may be made to what is specifically disclosed herein without departing from the spirit and scope of the present invention.
Claims
1. 1. An apparatus for improving the visual representation of an electrocardiogram, comprising: The apparatus comprises: At least one processor; a memory communicatively coupled to the at least one processor, the memory comprising: receiving a plurality of electrocardiogram signals generated using at least one sensor of a plurality of sensors connected to a patient; receiving at least one transformation matrix; transforming the plurality of electrocardiogram signals into cardiac vectors as a function of the at least one transformation matrix; generating a vector electrocardiogram image comprising a representation of the cardiac vector in three-dimensional (3D) space as a function of the cardiac vector; a memory including instructions configuring the at least one processor to assign at least one diagnostic label to the patient as a function of the vector electrocardiogram image; An apparatus comprising:
2. The apparatus of claim 1 , wherein the transformation matrix is associated with a first guidance system.
3. The apparatus of claim 1 , wherein the memory further instructs the at least one processor to generate a diagnostic report as a function of the at least one diagnostic label and the vector electrocardiogram image.
4. The apparatus of claim 1 , wherein the memory further instructs the at least one processor to generate a confidence score as a function of the assignment of the at least one diagnostic label.
5. assigning the at least one diagnostic label to the patient comprises: identifying a plurality of past vector electrocardiogram images as a function of said patient profile; and assigning the at least one diagnostic label as a function of a comparison between the transformed electrocardiogram and the plurality of previous vector electrocardiogram images.
6. The apparatus of claim 5 , wherein the memory further instructs the at least one processor to identify a diagnostic feature as a function of the vector electrocardiogram image and a plurality of past vector electrocardiogram images.
7. Producing the vector electrocardiogram image includes capturing the cardiac vector motion; and displaying the cardiac vectors through an alternative lag-reconstructed ECG representation.
8. The apparatus of claim 1 , wherein the vector electrocardiogram image includes color-coded cardiac vectors.
9. The apparatus of claim 1 , wherein assigning the at least one diagnostic label comprises assigning the at least one diagnostic label using an assignment machine learning model.
10. assigning the at least one diagnostic label using the assignment machine learning model includes: training the assignment machine learning model using assignment training data comprising a plurality of data entries including the vector electrocardiogram image and a profile of the patient as inputs that correlate to the at least one diagnostic label as an output; and assigning the at least one diagnostic label as a function of the vector electrocardiogram image and the patient profile using a trained assignment machine learning model.
11. 1. A method for improving a visual representation of an electrocardiogram, comprising: The method comprises: receiving, using at least one processor, a plurality of electrocardiogram signals generated using at least one sensor of a plurality of sensors connected to a patient; receiving, using the at least one processor, at least one transformation matrix; transforming, using the at least one processor, the plurality of electrocardiogram signals into cardiac vectors as a function of the at least one transformation matrix; generating, using the at least one processor, a vector electrocardiogram image comprising a representation of the cardiac vector in three-dimensional (3D) space as a function of the cardiac vector; using the at least one processor to assign at least one diagnostic label to the patient as a function of the vector electrocardiogram image; A method comprising:
12. The method of claim 11 , wherein the transformation matrix is associated with a first guidance system.
13. The method of claim 11 , further comprising generating, using the at least one processor, a diagnostic report as a function of the at least one diagnostic label and the vector electrocardiogram image.
14. The method of claim 11 , further comprising generating, using the at least one processor, a confidence score as a function of the assignment of the at least one diagnostic label.
15. assigning the at least one diagnostic label to the patient comprises: identifying a plurality of past vector electrocardiogram images as a function of said patient profile; and assigning the at least one diagnostic label as a function of a comparison between the electrocardiogram after the transformation and the plurality of previous vector electrocardiogram images.
16. The method of claim 15 , further comprising using the at least one processor to identify diagnostic features as a function of the vector electrocardiogram image and a plurality of previous vector electrocardiogram images.
17. Generating the vector electrocardiogram image using the at least one processor includes: capturing the cardiac vector motion; The method of claim 11 , further comprising: displaying the cardiac vectors through an alternative lag-reconstructed ECG representation.
18. The method of claim 11 , wherein the vector electrocardiogram image includes color-coded cardiac vectors.
19. The method of claim 11 , wherein assigning the at least one diagnostic label comprises assigning the at least one diagnostic label using an assignment machine learning model.
20. assigning the at least one diagnostic label using the assignment machine learning model includes: training the assignment machine learning model using assignment training data comprising a plurality of data entries including the vector electrocardiogram image and a profile of the patient as inputs that correlate to the at least one diagnostic label as an output; and assigning the at least one diagnostic label as a function of the vector electrocardiogram image and the patient profile using a trained assignment machine learning model.