%% Convert heartbeat type of annotation from valid ECG formats to EC57 AAMI
% An alternative interface to AnnotationFilterConvert.
% 
% Example
% 
%   [QRS_locations, true_labels ] = Annotation_process(ann, recording_format, labeling_format)
% 
%   where:
%     *ann is a annotation structure (ECG_annotations prop. in ECGwrapper
%        object). Mandatory fields for this function are: time and anntyp. 
%     *recording_format is a string with a valid recording format read by
%        read_ecg (cKnownFormats).
%     *labeling_format is a string to map the annotations, possible values
%        are AAMI (N,S,V,F,Q) or AAMI2 (N,S,V&F,Q).
% 
% See also AnnotationFilterConvert
% 
% Author: Mariano Llamedo Soria llamedom@electron.frba.utn.edu.ar
% Version: 0.1 beta
% Birthdate: 01/01/2012
% Last update: 18/10/2014
% Copyright 2008-2015
function [QRS_locations, true_labels ] = Annotation_process(ann, recording_format, labeling_format)

if( nargin < 3 || isempty(labeling_format) )
    %default AAMI2
    labeling_format = 'AAMI2';
end

%In this case we need the true labels labeled from an expert.
if( isfield( ann, 'anntyp'))
    % Annotations filtering and conversion
    ann_filtered = AnnotationFilterConvert(ann, recording_format, labeling_format);

    %debug and performance asssesment only 
    true_labels = ann_filtered.anntyp;
    QRS_locations = ann_filtered.time;
    
else
    
    QRS_locations = ann.time;
    true_labels = [];
    
end
