Real-time ECG report generation

By generating and updating report simulation pages and construction pages of electrocardiogram data in the user interface, the problem of analyzing and processing large amounts of ECG data in the prior art is solved, and efficient identification and reporting generation of cardiac events is achieved.

CN119421663APending Publication Date: 2025-02-11BOSTON SCIENTIFIC CARDIAC DIAGNOSTICS INC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380034914.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-04-18
Filing Date
2023-04-14
Publication Date
2025-02-11

AI Technical Summary

Technical Problem

The prior art is difficult to effectively analyze and process large amounts of electrocardiogram (ECG) data, especially in identifying cardiac events.

Method used

By one method, including receiving ECG data and related metadata, generating a report simulation page that includes a band of ECG data and a summary of patient data, and displaying a report construction page and a report simulation page in the user interface. This method allows users to modify the metadata in the report build page, automatically update the report simulation page without interacting with the server.

Benefits of technology

It realizes real-time update of ECG data and metadata analysis results in the user interface, improves the efficiency of identification and reporting of cardiac events, and reduces the need for computing resources and network bandwidth.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119421663A_ABST
    Figure CN119421663A_ABST
Patent Text Reader

Abstract

A method includes receiving, by a first computing system, electrocardiogram (ECG) data and a first packet of metadata associated with the ECG data. The method further includes generating, by the first computing system based on the ECG data and the metadata, a report simulation page including a stripe of the ECG data and a summary of the patient data. The method also includes displaying the report simulation page in a user interface (UI) and displaying a report building page in the UI. The report building page includes ECG data and metadata. The method also includes modifying metadata in the report building page and automatically updating the report simulation page in response to modifying the metadata.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority to Provisional Application No. 63 / 332,051, filed on April 18, 2022, which is incorporated herein by reference in its entirety. Technical Field

[0003] The present disclosure relates to devices, methods and systems for analyzing cardiac activity and cardiac events. Background Art

[0004] Monitoring devices for collecting biometric data are becoming more and more common in diagnosing and treating patients' medical conditions. For example, mobile devices can be used to monitor a patient's cardiac data. Such cardiac monitoring can provide doctors with valuable information about the occurrence and regularity of various heart diseases and irregular pulses in patients. Cardiac monitoring can be used, for example, to identify abnormal heart rhythms so that critical alerts can be provided to the patient, doctor or other care provider and the patient can receive treatment. Summary of the invention

[0005] In Example 1, a method includes receiving, by a first computing system, a first package of electrocardiogram (ECG) data and metadata associated with the ECG data. The method also includes generating, by the first computing system, a report simulation page including a strip of ECG data and a summary of patient data based on the ECG data and the metadata. The method also includes displaying the report simulation page in a user interface (UI) and displaying a report build page in the UI. The report build page includes the ECG data and the metadata. The method also includes modifying the metadata in the report build page and automatically updating the report simulation page in response to modifying the metadata.

[0006] In Example 2, according to the method of Example 1, wherein modifying comprises changing a classification associated with a set of beats contained in the ECG data.

[0007] In Example 3, according to the method of Example 2, the classification is a cardiac event type.

[0008] In Example 4, according to the method of any of the preceding Examples, wherein each beat contained in the ECG data is associated with a classification.

[0009] In Example 5, the method according to any of the preceding Examples, wherein the automatic updating occurs at the first computing system.

[0010] In Example 6, the method of any of the preceding examples, wherein the UI is displayed in a browser, wherein the automatic updating occurs without interaction with the server.

[0011] In Example 7, according to the method of any of the preceding examples, wherein the first packet of data further comprises executable code, wherein the executable code is executed to cause automatic updating of the report simulation page.

[0012] In Example 8, according to the method of Example 7, wherein the executable code is executed to cause display of a report construction page in the UI.

[0013] In Example 9, according to a method according to any of the preceding examples, the report construction page also includes a window displaying a group of beats of ECG data associated with a first classification, wherein modifying the metadata includes changing the first classification to a second classification for each beat in the group of beats.

[0014] In Example 10, according to the method of any of the preceding examples, the metadata is generated by a machine learning model.

[0015] In Example 11, the method according to any of the preceding examples further includes: sending the modified metadata from the first computing system to the server.

[0016] In Example 12, the method according to any of the preceding examples further includes: generating a report file containing ECG data and metadata displayed in the report simulation page.

[0017] In Example 13, a computer program product includes instructions for causing one or more processors to perform the steps of the methods of Examples 1-12.

[0018] In Example 14, a computer readable medium has the computer program product of Example 13 stored thereon.

[0019] In Example 15, a computer includes the computer readable medium of Example 14.

[0020] In Example 16, a system includes a remote computing system having a user interface (UI), a first processor, and a first computer-readable medium having a first set of computer-executable instructions embodied thereon. The first set of instructions is configured to be executed by the first processor to cause the first processor to: (1) generate a report simulation page including a strip of ECG data and a summary of patient data based on ECG data and metadata associated with the ECG data, (2) display the report simulation page in the UI, (3) display a report build page in the UI, the report build page including the ECG data and the metadata, (4) modify the metadata in the report build page, and (5) automatically update the report simulation page in response to modifying the metadata.

[0021] In Example 17, the system of Example 16, wherein the modifying comprises changing a classification associated with a set of beats contained in the ECG data.

[0022] In Example 18, the system according to Example 17, wherein the classification is a cardiac event type.

[0023] In Example 19, the system of Example 17, wherein the classification is a beat classification.

[0024] In Example 20, according to the system of Example 16, wherein the report construction page also includes a window displaying a group of beats of ECG data associated with the same cardiac event type, wherein modifying the metadata includes changing the same cardiac event type to another type of cardiac event for each beat in the group of beats.

[0025] In Example 21, the system of Example 16, wherein the automatic updating occurs without interaction with the server.

[0026] In Example 22, the system according to Example 16 further includes a server having a database, a second processor, and a second computer-readable medium having a second set of computer-executable instructions embodied thereon. The second set of instructions is configured to be executed by the second processor to cause the second processor to: (1) identify cardiac events within the ECG data using a machine learning model operated by the server, (2) associate metadata with the ECG data, the metadata including a first set of indicators of a type of cardiac event, (3) store the metadata in the database of the server, and (4) transmit the strip of ECG data and the associated metadata and the first set of instructions to a remote computing system.

[0027] In Example 23, the system of Example 22, wherein the second set of instructions is configured to be executed by the second processor to cause the second processor to: receive metadata including a second set of indicators of cardiac events generated by the remote computing system, and replace the first set of indicators with the second set of indicators in the database.

[0028] In Example 24, the system according to Example 23, wherein the second set of instructions is configured to be executed by the second processor to cause the second processor to: generate a Holter report based at least in part on the ECG data and the second set of indicators.

[0029] In Example 25, the system of Example 23, wherein the second set of instructions is configured to be executed by the second processor to cause the second processor to: train the machine learning model using the second set of indicators.

[0030] In Example 26, a method includes receiving, by a first computing system, a first package of electrocardiogram (ECG) data and metadata associated with the ECG data; generating, by the first computing system, a report simulation page including a strip of ECG data and a summary of patient data based on the ECG data and the metadata; displaying the report simulation page in a user interface (UI); displaying a report build page in the UI, the report build page including the ECG data and the metadata; modifying the metadata in the report build page; and automatically updating the report simulation page in response to modifying the metadata.

[0031] In Example 27, the method according to Example 26, wherein the modifying comprises changing a classification associated with a set of beats contained in the ECG data.

[0032] In Example 28, according to the method of Example 27, wherein the classification is a cardiac event type.

[0033] In Example 29, according to the method of Example 27, wherein the classification is a beat classification.

[0034] In Example 30, according to the method of Example 26, wherein each beat contained in the ECG data is associated with a beat classification.

[0035] In Example 31, according to the method of Example 26, wherein the automatic updating occurs without interaction with the server.

[0036] In Example 32, a method includes receiving, by a server, electrocardiogram (ECG) data generated by a remote monitoring device; identifying cardiac events within the ECG data using a machine learning model operated by the server; associating metadata with the cardiac events and storing the metadata in a database of the server; transmitting a strip of ECG data and associated metadata and executable code to a remote computing system; receiving, by the server from the remote computing system, metadata including a second set of indicators of cardiac events generated by the remote computing system; and replacing the first set of indicators with the second set of indicators in the database.

[0037] In Example 33, the method according to Example 32 further includes: generating a Holter report based at least in part on the ECG data and the second set of indicators.

[0038] In Example 34, according to the method of Example 32, wherein the executable code is used to generate the second set of indicators.

[0039] In Example 35, the method according to claim 32 further includes: training the machine learning model using a second set of indicators.

[0040] Although multiple examples are disclosed, other examples of the present disclosure will become apparent to those skilled in the art from the following detailed description, wherein illustrative examples of the present disclosure are shown and described. Accordingly, the drawings and detailed description are to be regarded as illustrative in nature and not restrictive. BRIEF DESCRIPTION OF THE DRAWINGS

[0041] Figure 1 A cardiac monitoring system according to certain examples of the present disclosure is shown.

[0042] Figure 2 A server, a remote computer, and a user interface are shown according to certain examples of the present disclosure.

[0043] Figure 3 Some examples according to the present disclosure are shown Figure 2 User interface.

[0044] Figures 4 to 8B Various views of a report building user interface according to certain examples of the present disclosure are shown.

[0045] Figures 9 to 11 Various views of a report building user interface according to certain examples of the present disclosure are shown.

[0046] Fig.12 A flow chart depicting an illustrative method for displaying ECG data and updating metadata in real time according to an example of the present disclosure is shown.

[0047] Fig.13 A flow chart depicting an illustrative method for hosting a SaaS platform and updating a hosted database in response to remote changes to metadata according to an example of the present disclosure is shown.

[0048] Fig.14 is a block diagram depicting an illustrative computing device according to examples of the present disclosure.

[0049] Although the disclosed subject matter may be subjected to various modifications and alternative forms, specific examples have been shown by way of example in the drawings and described in detail below. However, it is not intended to limit the disclosure to the specific examples described. On the contrary, the disclosure is intended to cover all modifications, equivalents and alternatives falling within the scope of the disclosure as defined by the appended claims. DETAILED DESCRIPTION

[0050] The present disclosure relates to devices, methods, and systems for facilitating analysis of cardiac activity and cardiac events (eg, abnormal heart rhythms or other problems).

[0051] A patient's electrocardiogram (ECG) data can be used to identify whether the patient has experienced a cardiac event. Since monitoring equipment may continuously sense and record ECG data, the amount of ECG data can be overwhelming and difficult to analyze effectively. Examples of the present disclosure are therefore directed to systems, methods, and devices for facilitating analysis of ECG data.

[0052] Figure 1 Patient 10 and example system 100 are shown. System 100 includes a monitor 102 attached to patient 10 to detect cardiac activity of patient 10. Monitor 102 can generate electrical signals representing cardiac activity in patient 10. For example, monitor 102 can detect the patient's heartbeat (e.g., using infrared sensors, electrodes) and convert the detected heartbeat into electrical signals representing ECG data. Monitor 102 transmits the ECG data to mobile device 104 (e.g., mobile phone).

[0053] The mobile device 104 may include a program (e.g., a mobile phone application) that receives, processes, and analyzes ECG data. For example, the program may analyze ECG data and detect or mark cardiac events (e.g., periods of irregular cardiac activity) contained within the ECG data. As noted above, because ECG data may be continuously generated, the amount of ECG data stored and processed locally on the mobile device 104 may be overwhelming. Therefore, the mobile device 104 may periodically transmit a block of ECG data to another device or system that may process a block of ECG data and metadata associated with the block of ECG data (e.g., time, duration, detected / marked cardiac events), attach it together, and archive it. In some instances, the monitor 102 may be programmed to transmit ECG data directly to other devices or systems without utilizing the mobile device 104. In addition, in some instances, the monitor 102 and / or the mobile device 104 include a button or touch screen icon that allows the patient 10 to initiate an event. Such instructions may be recorded and transmitted to another device or system. In other instances involving multi-day studies, ECG data and associated metadata are transmitted in larger blocks.

[0054] Cardiac Event Server

[0055] exist Figure 1 In the example shown in , mobile device 104 transmits ECG data (and associated metadata, if any) to cardiac event server 106 (hereinafter referred to as "server 106" for brevity). Server 106 includes multiple platforms, layers, or modules that work together to process and analyze ECG data so that cardiac events can be detected, filtered, prioritized, and ultimately reported to the patient's physician for analysis and treatment. Figure 1In the example of , the server 106 includes one or more machine learning models 108 (e.g., a type of deep neural network), a cardiac event router 110, a reporting platform 112, and a notification platform 114. Figure 1 Only one server 106 is shown, and the server 106 may include multiple separate physical servers, and the various platforms / modules / layers may be distributed among the multiple servers. Each of the platforms / modules / layers may represent a separate program, application, and / or code block, wherein the output of one of the platforms / modules / layers is the input to another of the platforms / modules / layers. Each platform / module / layer may communicate between or among other platforms / modules / layers and systems and devices external to the server 106 using an application programming interface.

[0056] The server 106 applies the machine learning model 108 to the ECG data to classify the cardiac activity of the patient 10. For example, the machine learning model 108 can compare the ECG data with the labeled ECG data to determine which labeled ECG data the ECG data is most similar to. The labeled ECG data can identify specific cardiac events, including but not limited to ventricular tachycardia, bradycardia, atrial fibrillation, pause, normal sinus rhythm, or artifact / noise.

[0057] In some embodiments, the machine learning model 108 includes two paths, wherein the first path is a deep convolutional neural network and the second path is a deep fully connected neural network. The deep convolutional neural network receives one or more groups of beats (e.g., a beat train with 3-10 beats), which are processed through a series of layers in the deep convolutional neural network. The series of layers may include a convolutional layer that performs convolution on the time series data in the beat train, a batch normalization layer that normalizes the output from the convolutional layer (e.g., centers the result around the origin), and a nonlinear activation function layer for receiving the normalized value from the batch normalization layer. The beat train then passes through a set of repeated layers, such as another convolutional layer, a batch normalization layer, and a nonlinear activation function layer. This set of layers can be repeated multiple times.

[0058] The deep fully connected neural network receives RR-interval data (e.g., the time interval between adjacent beats) and processes the RR-interval data through a series of layers: a fully connected layer, a nonlinear activation function layer, another fully connected layer, another nonlinear activation function layer, and a regularization layer. The outputs from both paths are then provided to the fully connected layer. The resulting values ​​pass through the fully connected layer and the softmax layer to produce a probability distribution for the beat class.

[0059] If the machine learning model 108 determines that the ECG data is closest to a labeled ECG data associated with a cardiac event, then the machine learning model 108 can determine that the patient 10 has experienced the cardiac event. In addition, the machine learning model 108 can measure or determine certain characteristics of the patient's 10 cardiac activity based on the ECG data. For example, the machine learning model 108 can determine the patient's 10 heart rate, duration, or beat count during the cardiac event based on the ECG data. The server 106 stores the cardiac event (and associated metadata, such as information like heart rate, duration, beat count, etc.) in a database for storage. Subsequently, the server 106 can retrieve the cardiac event and associated information from the database.

[0060] In some instances, the mobile device 104 (or monitor 102) can initially classify a cardiac event based on the ECG data. The server 106 can then reclassify or confirm the cardiac event using the machine learning model 108. Doing so allows for more computationally expensive analysis of the ECG data to be performed using the computing resources of the server 106 rather than the limited resources of the mobile device 104.

[0061] In some instances, once the ECG data is processed by the machine learning model 108, the ECG data is made available to a reporting platform 112. As will be described in more detail below, the reporting platform 112 may be accessed by a user at a clinic or laboratory 118 via a remote computer 116 (e.g., a client device such as a laptop computer, mobile phone, desktop computer, and the like).

[0062] In other examples, the cardiac event router 110 is used to determine a platform for further processing of the ECG data based on the classification associated with the cardiac event. For example, if the identified cardiac event is severe, the cardiac event router 110 may flag or send the ECG data, etc. to a notification platform 114. The notification platform 114 may be programmed to immediately send a notification (along with the relevant ECG data and associated metadata) to the patient's physician / care team remote computer 116 and / or to the patient 10 (e.g., to their computer system, email, mobile phone application).

[0063] Reporting Platform

[0064] Figure 2 The server 106 is shown communicatively coupled (e.g., via a network) to a remote computer 116. Figure 2In the example of , remote computer 116 includes a monitor showing user interface 122 (hereinafter referred to as "UI 122" for brevity) that displays features of reporting platform 112 hosted by server 106. UI 122 includes multiple pages or screens for tracking and facilitating analysis of patient ECG data.

[0065] Figure 3 A closer view of the UI 122 and a patient dashboard page 200 is shown. The patient dashboard page 200 displays a summary of the status of the monitored patients. For example, the patient dashboard page 200 may display a list 202 of patients who have been shipped a monitoring device, a list 204 of patients who have received a monitoring device, a list 206 of patients who are currently being monitored (e.g., the monitor is actively recording ECG data), and a list 208 of patients who have completed a monitoring period.

[0066] Figure 4 A closer view of the list 206 of the patient currently being monitored is shown. List 206 can show information about each patient, including the current status of their monitoring. For example, list 206 can include a group of icons that are colored to indicate the progress and completeness of the monitoring period. For example, the icon can be colored green for the patient's successful collection of sufficient ECG data every day (or other time period), colored yellow for the time period when the monitored ECG data is intermittent (for example, the time period when the patient removes the monitor during certain time periods), colored red for the time period when the ECG data is insufficient, and colored blank for the time period when the patient has not yet completed. Therefore, the patient dashboard page 200 can facilitate the tracking of patient monitoring and when the study is completed and ready to build and generate reports.

[0067] Build and Report Screens

[0068] In some examples, the reporting platform 112 is a software-as-a-service (SaaS) platform hosted by the server 106. To access the reporting platform 112, a user (e.g., a technician) interacts with the UI 122 to log into the reporting platform 112 via a web browser so that the user can use and interact with the reporting platform 112. When a user at the clinic or laboratory 118 is ready to analyze the ECG data of a patient, the user can select the patient's profile through the UI 122.

[0069] The server 106 (e.g., via programming associated with the reporting platform 112) can initiate a process for sending data to the remote computer 116. The data includes ECG data and metadata associated with the ECG data. As noted above, once the ECG data from the monitored patient has been collected, the machine learning model 108 can determine certain features of the patient's 10 cardiac activity based on the ECG data, including estimating that a cardiac event has occurred and associating or generating metadata for the determined event. The metadata may include information about the patient 10, the patient's 10 heart rate during the cardiac event, the duration of the cardiac event, the beat count of the cardiac event, the confidence level of the machine learning model in the identification of the cardiac event, and / or the beat classification (e.g., normal, ventricular, supraventricular, unclassified). As described in more detail below, in some embodiments, the machine learning model 108 assigns a beat classification to each beat and also assigns a cardiac event type (e.g., atrial fibrillation, ventricular tachycardia, flutter) to certain groups and patterns of beats. In order to distinguish between beats, each individual beat can therefore be assigned a unique identifier (e.g., a unique number).

[0070] Accessing, processing and displaying one or more days' worth of ECG data and metadata consumes a large amount of computing resources, network bandwidth resources and human resources. To help alleviate the burden on these resources, server 106 (e.g., via reporting platform 112) can selectively transmit packages of ECG data and metadata to remote computer 116.

[0071] The initial packet of data may include: (1) a short strip of ECG data surrounding a detected cardiac event (e.g., a 60 second strip), (2) metadata associated with the strip, and (3) executable code (e.g., JavaScript code). In some instances, only ECG data associated with the highest priority cardiac event is initially transferred. After the initial packet of data is transferred from the server to the remote computer 116, additional packets of data may be transferred in response to selections made by the user in the UI 122.

[0072] With these initial packages of data, the user has access (via remote computer 116 and UI 122) Figures 5 to 8B The report build page shown in 250 and Figures 9 to 11. The report construction page 250 facilitates analysis of cardiac events, while the report simulation page 300 facilitates summary of various cardiac events and review of the patient's ECG data and metadata. These pages are generated at the remote computer 116 based on the package of data and they are selectively displayed via the UI 122. As will be described in more detail below, as the user interacts with the report construction page 250, the report simulation page 300 is updated in real time. This real-time update allows the user to quickly preview the ECG data and metadata sets to be included in the final report without having to wait for the final report to be generated. Although the report construction page 250 and the report simulation page 300 are shown in separate figures, the UI 122 can display these two pages simultaneously so that the user can view the update of the report simulation page 300 as it occurs without having to switch between the two pages. In other words, Figures 5 to 8B aspects and Figures 9 to 11 Aspects of may be displayed simultaneously in UI 122 so that a user may view both pages.

[0073] Figure 5 A screen shot of a report construction page 250 is shown. The report construction page 250 is used by a user to review and analyze a patient's ECG data and metadata. The report construction page 250 includes a plurality of windows for displaying data, plots, icons, links, tags, indicators, and the like.

[0074] Window 252 displays a heart rate graph for multiple days worth of ECG data. This window 252 provides an initial visual insight into which time periods appear to contain abnormal heart rate activity. Figure 5 In the example shown, window 252 displays four days of ECG data, although shorter or longer time periods may be displayed by default or changed by the user.

[0075] Window 254 allows the user to view a shorter graph of ECG data. For example, window 254 can display ECG data associated with a detected cardiac event as well as ECG data before and after the detected event. This window 254 provides visual insight into the onset of the detected event and whether the detected event may be an artifact, a subsequent event, etc. As the user scrolls through window 254, window 252 displays an indicator 256 (e.g., a vertical line) showing the location of the ECG data of window 254 within the heart rate graph of window 252.

[0076] Window 258 shows a graph of shorter ECG data (e.g., approximately 10 beats) than the graphs of windows 252 and 254. Window 258 displays a closer view of a portion of the ECG data of windows 252 and 254. A user can use window 254 to select which shorter set of ECG data to display in window 258. Each of windows 252, 254, and 258 may include markers, indicators, icons, etc. to visually annotate the location of a detected cardiac event within a strip of ECG data.

[0077] On the left side of the report construction page 250 is a beat morphology window 260 (hereinafter referred to as "morphology window 260"), which includes a plurality of individual sub-windows that display graphs of one or more individual beats. The user can use the morphology window 260 to select a beat, which can cause the windows 252, 254, and 258 to be updated. For example, the indicator 256 in the window 252 can be moved to the position of the selected beat and / or the beat can be highlighted within the graph, and the windows 252, 254, and 258 can be updated to display ECG data surrounding the beat selected in the morphology window 260.

[0078] Fig. 6A and Figure 6B A closer view of the morphology window 260 is shown. Fig. 6A The morphology window 260 is shown as displaying multiple sub-windows. Each sub-window can display a graph of multiple beats that have been characterized (e.g., by the machine learning model 108) as having the same type of cardiac event. The user can select the type of cardiac event (e.g., atrial fibrillation, ventricular tachycardia) from the menu button 262 to display the beats associated with the selected cardiac event in a sub-window.

[0079] The user can then select a single beat or a group of beat graphs in the subwindow and, if desired, change the type of cardiac event or beat classification associated with the selected beat. In addition, instead of selecting a single beat, the user can select all beats associated with a given cardiac event and change the given cardiac event (or beat classification) to a different type of cardiac event (or beat classification). Because the machine learning model 108 assigns an initial beat classification to each beat, the report construction page 250 can be used to perform large-scale updates to metadata associated with similarly characterized beats. For example, in Figure 6B, the cardiac event types associated with the subwindows are shown as being associated with 2,607 beats. Using the morphology window 260 of the report construction page 250, the user can re-characterize each of those 2,607 beats with one operation. Thus, metadata for thousands to hundreds of thousands (or millions, for long-term studies) of beats can be collectively updated. The user can also merge subwindows using the merge button 264 so that the beats in two or more subwindows are characterized by the same cardiac event type.

[0080] Because a set of ECG data may represent tens, hundreds of thousands, or even millions of individual beats, this ability to perform large-scale updates of beats saves the user time in analyzing the ECG data and ultimately constructing reports.

[0081] Figure 7 Another screen shot of the report construction page 250 is shown displaying the events window 266 . Fig. 8A and Figure 8B A closer view of event window 266 is shown. Fig. 8A As shown, event window 266 includes a list of events for analysis. An initial list of events (and initial candidates for detected events and associated ECG data) can be automatically generated and populated by reporting platform 112. The user can use the initial event list as a "to-do" list of analyses that should be performed and added to the final report. For example, each report can include one or more fastest beats, one or more slowest beats, longest duration, longest RR, and examples of cardiac events experienced by the patient. As the user runs through the event list, event window 266 can display strips of ECG data associated with detected events that are identified as the most likely candidates to be included in the report (as shown in FIG. 18B ). In addition, as the user runs through the event list, the rest of windows 252, 254, and 258 (such as Figure 7 Window 252 is updated to display the ECG data surrounding the detected event. In some instances, when the user is analyzing a particular type of cardiac event, window 252 will show the ECG data associated with the particular type of cardiac event in a different color or other visual distinction from the rest of the ECG data.

[0082] Figures 9 to 11Different screenshots of the report simulation page 300 are shown. The initial ECG data, metadata, and strips of ECG data shown in the report simulation page 300 can be generated by the reporting platform 112. That is, when the user initially selects the report simulation page 300, the user is viewing an initial simulation report automatically generated by the reporting platform 112. The simulation report mimics the formatting and data that will ultimately be included in the final report sent to the patient's doctor. Example final reports include a Holter report (e.g., short-term or long-term) and a cardiac event report, and the report can be in the form of a pdf file or other file type.

[0083] Because the simulated report displayed on the report simulation page 300 mimics the final report, the simulated report allows the user to see a preview of the final report without taking the time to generate the actual final report, which may take 10 to 20 minutes. Thus, the report simulation page 300 saves the user the time of having to create multiple reports before finalizing the final version that is then sent to the patient's physician.

[0084] The report simulation page 300 includes a baseline summary of patient information generated from the ECG data. Fig.10 As shown, the report simulation page 300 includes heart rate information, ectopic and event summaries - each of which may have been initially generated by the machine learning model 108. For a given type of event, such as Fig. 9 and Fig.11 As shown, report simulation page 300 includes one or more example strips of ECG data.

[0085] The report simulation page 300 can be automatically updated in real time as the user makes changes in the report construction page 250. For example, if the user uses the morphology window 260 of the report construction page 250 to re-characterize the beat with a different type of cardiac event, the report simulation page 300 will be updated to reflect the change. Such updating of data can include, among other things, automatically changing the order of cardiac events on the report simulation page 300, changing which strip of ECG data represents a given cardiac event, and / or updating a baseline summary of patient information generated from the ECG data, etc. In addition, as the user selects representative events on the report construction page 250, those events are automatically added to the report simulation page 300.

[0086] To save processing and network resources and allow these changes to occur in real time, calculations and changes to the report simulation page 300 can be performed locally on the remote computer 116 - rather than sending large blocks of data back and forth between the server 106 and the remote computer 116. For example, the calculations can use cache memory 124 (such as Figure 1The reporting platform 112 may be configured to perform local processing and updating using the processing power (e.g., one or more microprocessors) of the remote computer 116. To enable local processing and updating, the reporting platform 112 may send code to the remote computer 116 for local execution. The code uses (or operates on) the output of the machine learning model 108, such as beat classification and rhythm classification (as opposed to the underlying or raw ECG data), which reduces the computing resources required to process changes made by the user locally at the remote computer 116. In some embodiments, this code is executed by an Internet browser operating on the remote computer 116.

[0087] Once the user is satisfied with the simulated report, the user may select the "Finish Report" button on the report simulation page 300. This selection will initiate the process of generating a final report that will be sent to the patient's physician.

[0088] In some instances, once the report is built and completed, the remote computer 116 can send any changes to the metadata (e.g., beat classification and rhythm classification) to the server 106 and its database. The server 106 can then replace the metadata initially created by the machine learning model (and saved to the database) with the metadata generated by the remote computer while the user is reviewing and editing the metadata. Thus, if the ECG and metadata need to be accessed again, the server's database has the latest version of the metadata. In addition, the machine learning model can be further trained on the metadata generated by the user at the remote computer.

[0089] method

[0090] Fig.12 A block diagram of a method 400 for real-time display of ECG data and updating metadata is shown. The method 400 includes receiving, by a first computing system, a first packet of electrocardiogram (ECG) data and metadata associated with the ECG data ( Fig.12 The method 400 also includes generating, by the first computing system, based on the ECG data and the metadata and displaying a report simulation page including a strip of ECG data and a summary of the patient data ( Fig.12 The method 400 also includes displaying a report building page with ECG data and metadata in a user interface ( Fig.12 The method 400 also includes automatically updating the report simulation page in response to modifying the metadata in the report construction page ( Fig.12 408 in FIG.

[0091] Fig.13A block diagram of a method 500 for hosting a SaaS platform and updating a hosted database in response to changes to metadata made remotely is shown. The method 500 includes identifying cardiac events within ECG data using a machine learning model operated by a server. Fig.13 The method 500 also includes associating metadata with the cardiac event and storing the metadata in a database of the server ( Fig.13 The metadata includes a first set of indicators of the cardiac event type. Next, method 500 includes transmitting the strip of ECG data and the associated metadata and executable code to a remote computing system ( Fig.13 The method also includes replacing the first set of indicators in the database with a second set of indicators generated by the remote computing system ( Fig.13 508 in FIG.

[0092] Computing devices and systems

[0093] Fig.14 600 may include any type of computing device suitable for implementing aspects of examples of the disclosed subject matter. Examples of computing devices include special-purpose computing devices or general-purpose computing devices, such as workstations, servers, laptops, desktops, tablet computers, handheld devices, smart phones, general-purpose graphics processing units (GPCPUs), and the like. Each of the various components shown and described in the figures may include their own set of special-purpose computing device components, such as Fig.14 For example, mobile device 104, server 106, and remote computer 116 may each include their own set of components, such as Fig.14 As shown in and described below.

[0094] In the example, computing device 600 includes bus 610, which directly and / or indirectly couples one or more of the following devices: processor 620, memory 630, input / output (I / O) ports 640, I / O components 650, and power supply 660. Any number of additional components, different components, and / or combinations of components may also be included in computing device 600.

[0095] Bus 610 represents a bus that may be one or more buses, such as, for example, an address bus, a data bus, or a combination thereof. Similarly, in an example, computing device 600 may include multiple processors 620, multiple memory components 630, multiple I / O ports 640, multiple I / O components 650, and / or multiple power supplies 660. In addition, any number or combination of these components may be distributed and / or replicated across multiple computing devices.

[0096] In an example, the memory 630 includes computer-readable media in the form of volatile and / or non-volatile memory and may be removable, non-removable, or a combination thereof. Examples of media include random access memory (RAM); read only memory (ROM); electronically erasable programmable read only memory (EEPROM); flash memory; optical or holographic media; magnetic cassettes, tapes, disk storage or other magnetic storage devices; data transmission; and / or any other medium that can be used to store information and can be accessed by a computing device. In an example, the memory 630 stores computer-executable instructions 670 for causing the processor 620 to implement aspects of the examples of the components discussed herein and / or to perform aspects of the examples of the methods and processes discussed herein. The memory 630 may include a non-transitory computer-readable medium storing the computer-executable instructions 670.

[0097] Computer executable instructions 670 may include, for example, computer code, machine usable instructions, and the like, such as, for example, program components that can be executed by one or more processors 620 (e.g., microprocessors) associated with computing device 600. Program components may be programmed using any number of different programming environments, including various languages, development kits, frameworks, and / or the like. Some or all of the functionality contemplated herein may also or alternatively be implemented in hardware and / or firmware.

[0098] According to an example, for example, the instructions 670 may be configured to be executed by the processor 620 and cause the processor 620 to perform certain processes after execution. In some examples, the processor 620, the memory 630, and the instructions 670 are part of a controller such as an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), and / or the like. Such devices may be used to perform the functions and steps described herein.

[0099] The I / O components 650 may include presentation components configured to present information to a user, such as, for example, a display device, a speaker, a printing device, and / or the like, and / or input components, such as, for example, a microphone, a joystick, a satellite dish, a scanner, a printer, a wireless device, a keyboard, a pen, a voice input device, a touch input device, a touch screen device, an interactive display device, a mouse, and / or the like.

[0100] The devices and systems described herein may be communicatively coupled via a network, which may include a local area network (LAN), a wide area network (WAN), a cellular data network, via the Internet using an Internet service provider, and the like.

[0101] Aspects of the present disclosure are described with reference to flowchart illustrations and / or block diagrams of methods, devices, systems, and computer program products. It will be appreciated that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions.

[0102] Various modifications and additions may be made to the exemplary examples discussed without departing from the scope of the disclosed subject matter. For example, although the examples described above refer to specific features, the scope of the present disclosure also includes examples with different combinations of features and examples that do not include all of the described features. Therefore, the scope of the disclosed subject matter is intended to include all such substitutions, modifications, and variations that fall within the scope of the claims, together with all equivalents thereof.

Claims

1. A method comprising: receiving, by a first computing system, a first packet of electrocardiogram (ECG) data and metadata associated with the ECG data; generating, by the first computing system, a report simulation page including a strip of the ECG data and a summary of the patient data based on the ECG data and the metadata; Displaying the report simulation page in a user interface (UI); displaying a report construction page in the UI, the report construction page including the ECG data and the metadata; Modifying the metadata in the report construction page; and The report simulation page is automatically updated in response to modifying the metadata.

2. The method according to claim 1, wherein: The modification includes changing a classification associated with a set of beats contained in the ECG data.

3. The method according to claim 2, wherein: The classification is cardiac event type.

4. A method according to any one of the preceding claims, wherein: Each beat contained in the ECG data is associated with a classification.

5. A method according to any one of the preceding claims, wherein: The automatic updating occurs at the first computing system.

6. A method according to any one of the preceding claims, wherein: The UI is displayed in a browser, wherein the automatic updating occurs without interaction with a server.

7. A method according to any one of the preceding claims, wherein: The first package of data also includes executable code, wherein the executable code is executed to cause automatic updating of the report simulation page.

8. The method according to claim 7, wherein: The executable code is executed to cause the report construction page to be displayed in the UI.

9. A method according to any one of the preceding claims, wherein: The report construction page also includes a window displaying a group of beats of the ECG data associated with a first classification, wherein modifying the metadata includes changing the first classification to a second classification for each beat in the group of beats.

10. A method according to any one of the preceding claims, wherein: The metadata is generated by a machine learning model.

11. The method according to any one of the preceding claims, further comprising: The modified metadata is sent from the first computing system to the server.

12. The method according to any one of the preceding claims, further comprising: A report file is generated that includes the ECG data and the metadata displayed in the report simulation page.

13. A computer program product comprising instructions for causing one or more processors to perform the steps of the method according to claims 1 to 12.

14. A computer readable medium having stored thereon the computer program product according to claim 13.

15. A computer comprising the computer readable medium according to claim 14.