A system for detecting abnormalities in electrocardiogram signals, the system comprising: an ECG device configured to obtain a set of ECG signals: a mobile device configured to receive the set of ECG signals from the ECG device; and a server configured to receive the set of ECG signals from the mobile device; and a processing unit at the server, configured to process the set of ECG signals and detect abnormalities in the set of ECG signals; wherein the processing unit comprises: an irregular rhythm detector configured to: i) amplify only the peaks of at least some of the set of ECG signals using a matched filtering step to produce a filtered signal; ii) produce ECG R-R beat markings corresponding with an R-R interval using the filtered signal; iii) detect and flag an irregular rhythm between ECG R-R beat markings; a beat extractor configured to extract a single ECG beat from the set of ECG signals using the ECG R-R beat markings, wherein the single ECG beat is extracted using a static window centred on a single beat; a first neural network comprising an encoder portion of an auto-encoder neural network, the first neural network configured to receive the extracted single ECG beat and to produce a feature vector that is a compact representation of the extracted single ECG beat; and a second classifier neural network configured to receive the feature vector from the first neural network and to generate a score indicating the presence or absence of a P wave in the single ECG beat; wherein the irregular rhythm is detected from an irregular R-R interval; and the processing unit is configured to identify abnormalities in the ECG signals by combining the irregular R-R interval flag with the score from the second neural network. an ECG device configured to obtain a set of ECG signals: a mobile device configured to receive the set of ECG signals from the ECG device; and a server configured to receive the set of ECG signals from the mobile device; and a processing unit at the server, configured to process the set of ECG signals and detect abnormalities in the set of ECG signals; wherein the processing unit comprises: an irregular rhythm detector configured to: i) amplify only the peaks of at least some of the set of ECG signals using a matched filtering step to produce a filtered signal; ii) produce ECG R-R beat markings corresponding with an R-R interval using the filtered signal; iii) detect and flag an irregular rhythm between ECG R-R beat markings; a beat extractor configured to extract a single ECG beat from the set of ECG signals using the ECG R-R beat markings, wherein the single ECG beat is extracted using a static window centred on a single beat; a first neural network comprising an encoder portion of an auto-encoder neural network, the first neural network configured to receive the extracted single ECG beat and to produce a feature vector that is a compact representation of the extracted single ECG beat; and a second classifier neural network configured to receive the feature vector from the first neural network and to generate a score indicating the presence or absence of a P wave in the single ECG beat; an irregular rhythm detector configured to: i) amplify only the peaks of at least some of the set of ECG signals using a matched filtering step to produce a filtered signal; ii) produce ECG R-R beat markings corresponding with an R-R interval using the filtered signal; iii) detect and flag an irregular rhythm between ECG R-R beat markings; i) amplify only the peaks of at least some of the set of ECG signals using a matched filtering step to produce a filtered signal; ii) produce ECG R-R beat markings corresponding with an R-R interval using the filtered signal; iii) detect and flag an irregular rhythm between ECG R-R beat markings; a beat extractor configured to extract a single ECG beat from the set of ECG signals using the ECG R-R beat markings, wherein the single ECG beat is extracted using a static window centred on a single beat; a first neural network comprising an encoder portion of an auto-encoder neural network, the first neural network configured to receive the extracted single ECG beat and to produce a feature vector that is a compact representation of the extracted single ECG beat; and a second classifier neural network configured to receive the feature vector from the first neural network and to generate a score indicating the presence or absence of a P wave in the single ECG beat; wherein the irregular rhythm is detected from an irregular R-R interval; and the processing unit is configured to identify abnormalities in the ECG signals by combining the irregular R-R interval flag with the score from the second neural network.