EDAN SE-2012 Holter recorder files
Written by Paul Bourke
June 2021
The EDAN SE-2012 Holter recorder is normally configured as either a 3 or 12 channel ECG recorder.
Following a recording it creates a number of files in the recording directory, typically these are
as follows but there may be others generated for various types of analysis.
ainoiseinterval.arg
arfctinterval.arg
beats.atr
beatsex.atr
diary.atr
ecgraw.dat
events.atr
eventstrip.atr
fileterecg.dat
hrhour.atr
hrt.atr
hrv.atr
MainTemplate.atr
mulinterval.arg
pacegenerate.dat
patient.hea
pwave.dat
stevents.atr
sttrends.atr
summary.atr
template.atr
twave.dat
|
Unfortunately the meaning of each of these files is undocumented including the contents which
is largely binary data so not decipherable by casual inspection.
While one can imagine the intended meaning of some of the files from their name,
in the following the aim is to be able to extract the raw ECG data for analysis in other
packages.
Raw data
The as-recorded ECG data is stored in the file called "ecgraw.dat".
This is simply a binary encoding of the electrode voltages, each a short unsigned integer
(2 bytes). So, for the case of 12 electrodes there are 2 x 12 bytes per time step. There is no
header and the sample number or seconds are not included. The file is read until the end.
One can calculate the number of samples in advance by dividing the file size by 12.
Normally one would subtract 16384 from each sample to get a signed sample with zero mean.
Header
The file "patient.hea" (patient header) contains a range of information about the recording,
although much of it is empty unless one takes the effort to add the additional metadata. Most of the
information is not important for the exercise of extracting the recording data for analysis
elsewhere. But some field are important, such as sampling frequency, filter settings and
electrode names. The table below gives the offsets from the start of the file of the information
deduced so far. If some of the metadata files are not available the relevant area is normally
padded with ascii 0.
Offset
|
Length
|
Description
|
4
|
4 byte int
|
A date and time
Seconds since Jan. 1, 1970
|
8
|
4 byte int
|
A date and time
Seconds since Jan. 1, 1970
|
12
|
1 byte
|
Number of channels
|
32
|
short int, 2 bytes
|
Sample frequency (Hz)
|
60
|
short int, 2 bytes
|
Patient height
If missing = -1
|
64
|
short int, 2 bytes
|
Patient weight
If missing = -1
|
68
|
ascii, 40 bytes(?)
software limited to 30(?)
|
Telephone number
|
108
|
ascii, 32 bytes(?)
software limited to 30(?)
|
Patient ID
|
140
|
ascii, 120 bytes(?)
software limited to 61(?)
|
Patient diagnosis
|
242
|
ascii, 102 bytes(?)
software limited to 56(?)
|
Patient medication
|
344
|
ascii, 68 bytes(?)
software limited to 65(?)
|
Accession number
|
412
|
ascii, 134 bytes(?)
software limited to 31(?)
|
In/Out/PE ID (?)
|
546
|
ascii, 134 bytes(?)
software limited to 31(?)
|
Patient area
|
1796
|
8 ascii characters per ECG channel
|
ECG electrode names
For example: I, II, III, aVR, aVL, aVF, V1, V2, V3, V4, V5, V6
|
1960
|
ascii, 134 bytes(?)
sotware limited to 31(?)
|
Department
|
2304
|
ascii, 10 bytes
|
Recorder id.
For example: B37335370
|
2314
|
ascii, 6 bytes
|
A version number(?)
For example: V1.14
|
2416
|
ascii, 6 bytes
|
A version number(?)
For example: V1.10
|
2596
|
short int, 2 bytes
|
Low pass filter (Hz)
For example: 100Hz
|
2628
|
ascii, 5 bytes
|
DFT filter
For example: 0.67
|
2637
|
ascii, 64 bytes(?)
|
Patient name
|
2700
|
ascii, 64 bytes(?)
software limited to 61(?)
|
Physicians name
|
2764
|
ascii, 64 bytes(?)
software limited to 61(?)
|
Technicians name
|
2828
|
ascii, 64 bytes(?)
software limited to 61(?)
|
Procedure description
|
2892
|
ascii, 64 bytes(?)
software limited to 61(?)
|
Medical history
|
2956
|
ascii, 86 bytes(?)
software limited to 86(?)
|
Patient address
|
3672
|
|
End of file
|
Notes
A key piece of information not yet identified in the header is the number of electrodes.
This would be useful for reading the "ecgraw.dat" file otherwise it needs to be known
in advance and specified to the decoder.
Despite the app listing options to record at 8,12,14,16,18 bits, the recorded files all seem to
have ECG samples that are +- 256, so 9 bit or 8 bit with sign.
If fewer than 12 electrodes are used, all 12 are still written to the output file.
The file "fileterecg.dat" contains a filtered version of the data, not sure if it's the "DFT Filter"
or the "LP Filter" parameter.
The EDAN software provides for an export to a ".arc" file. This is nothing more than a
concatenation of some of the files in the directory shown above with some wrapper information
to assist with the extraction of the files at a later date. ".arc" denotes an archive file.
Also undocumented, but not useful.
|