Waveform Database Software Package (WFDB) for MATLAB and Octave 0.10.0
(3,055 bytes)
function varargout=wfdbtool(varargin)
%
% [stat,browser,url]=wfdbtool(recordName,N,N0,systemBrowser)
%
% MATLAB interface to PhysioNet's LightWAVE. LightWAVE is a lightweight
% waveform and annotation viewer and editor. You can use it to view any of
% the recordings of physiologic signals and time series in PhysioNet,
% together with their annotations (event markers).
%
% NOTE: This tool is currently supported only in MATLAB 2013b or higher. On some system
% (such as Linux) the MATLAB default browser may not worker properly
% with LightWAVE. In this case you may want to try setting the
% 'systemBrowser' to 1 (true).
%
% Required Input Parameters:
%
% recorName
% String specifying the name of the record in the WFDB path or
% in the current directory.
%
% Optional Input Parameters are:
%
% N
% A 1x1 integer specifying the sample number at which to stop displaying the
% record file. Default is enough samples to cover 10 seconds.
% N0
% A 1x1 integer specifying the sample number at which to start displaying the
% record file (default 1 = first sample).Default is beginning of
% record.
%
% systemBrowser
% A 1x1 boolean. If true, uses the system browser. Default = 0.
%
%
% Optional Outputs are:
%
% stat
% A returns the status of the web command in the variable STAT. STAT = 0 indicates successful execution. STAT = 1
% indicates that the browser was not found. STAT = 2 indicates that the
% browser was found, but could not be launched.
%
% browser
% Returns a handle to the last active web browser.
%
% url
% Returns the URL of the current location.
%
% %Example 1
%
%
% Written by Ikaro Silva, 2013
% Last Modified: October 30, 2013
% Version 1.0
%
% Since 0.9.4
%
% %Example 1- Read a signal from PhysioNet's Remote server:
%wfdbtool('challenge/2013/set-a/a01')
%
%
% See also WFDBDESC, PHYSIONETDB, RDANN, WFDBTIME
%endOfHelp
%Set default pararamter values
inputs={'recordName','N','N0','systemBrowser'};
outputs={'stat','browser','url'};
N=[];
N0=[];
systemBrowser=0;
SERVER='http://physionet.org/lightwave?db=';
for n=1:nargin
if(~isempty(varargin{n}))
eval([inputs{n} '=varargin{n};'])
end
end
%If time is specified, convert from samples to record time in seconds
if(~isempty(N) || ~isempty(N0))
if(isempty(N0))
N0=0; %Default value put here for lazy initialization purposes
end
[~,Fs]=wfdbdesc(recordName);
N0=round(N0/Fs);
if(isempty(N))
%If stop time not specified, default to 10 seconds
N=N0+round(Fs*10);
else
N=N0+round(N/Fs);
end
end
%Reformat database name into PhysioBank format
sep=strfind(recordName,'/');
db=recordName(1:sep(end)-1);
rec=recordName(sep(end)+1:end);
record_url=[SERVER db '&record=' rec];
record_url
%Launch MATLAB's web browser
if(systemBrowser)
[stat,browser,url]=web(record_url,'-browser');
else
[stat,browser,url]=web(record_url);
end
%Send output, if anyd
for n=1:nargout
eval(['varargout{n}=' outputs{n} ';'])
end