Support Apnea Board & OSCAR  

Difference between revisions of "ResMed Data Formats"

From Apnea Board Wiki
Jump to: navigation, search

(Created page with "{{OSCAR}} ='''S9 Data Format'''= =='''Data format analysis'''== Grade: C (extra points awarded for being open) '''Negatives''' * Only keeps basic summary data when card is...")
 
(Blanked the page)
 
Line 1: Line 1:
{{OSCAR}}
 
='''S9 Data Format'''=
 
=='''Data format analysis'''==
 
  
Grade: C (extra points awarded for being open)
 
 
'''Negatives'''
 
* Only keeps basic summary data when card is left out. NO graphs.
 
* Unnecessarily deletes high-res flow waveform data after 7 days, all other graphs after 30 days.
 
* Summary does not contain settings info for each session, only once per day, according to ResMed split, which is not suitable for night-owls.
 
* Evil SDcard "drift" problem, which cause Events to NOT sync well over flow waveform. Needs a regular card format to work around this.
 
* Bloaty data format.
 
 
'''Positives'''
 
* Manufacturer chose to use an industry standard data format.
 
* Reasonable assortment of data available, and at a decent resolution.
 
 
= ResMed S9 Data Format =
 
ResMed chose an intelligent and sensible approach when designing their machines..
 
 
They used an industry standard. (Thankyou ResMed for showing common sense!)
 
 
== EDF+ Format ==
 
ResMed uses the European Data Format Plus format.
 
 
This format is documented [http://www.edfplus.info here]
 
 
It is rather verbose, but sensibly designed..
 
 
The Event Annotations are a little tricky.
 
 
== S9 SDCard Folder Structure ==
 
<nowiki>
 
[DATALOG]            Folder containing all the session data
 
Identification.crc  n/r (not relevant (checksum info))
 
Identification.tgt  n/r
 
Journal.dat          n/r
 
STR.crc              n/r
 
STR.edf              Contains overall summary information</nowiki>
 
 
=== DATALOG Folder ===
 
The main data is stored in 4 EDF files per session, with each file name consisting of a date, time, and type, followed by .edf
 
 
There is also a .crc checksum file for each of the above, but they are not needed to parse the data.
 
 
==== Example ====
 
<nowiki>20110601_021922_EVE.edf
 
(date)_(time)_(type).edf</nowiki>
 
 
==== The 4 File Types ====
 
<nowiki>Type  Details
 
EVE    Event annotation data
 
BRP    High resolution graph data
 
SAD    Pulse oximetry data
 
PLD    Low resolution graph data</nowiki>
 
 
= File Type Notes =
 
 
'''Note:''' Some foreign language machines use a different set of signal codes in the EDF data.
 
 
== EVE Event Annotation Data ==
 
The S9 series flags the following events:
 
*Hypopnea
 
*Apnea
 
*Obstructive Apnea
 
*Central Apnea
 
 
== BRP High resolution graph data ==
 
<nowiki>
 
Code            Details                        Units                            Notes
 
"Flow"          Flow Rate                      ?
 
"Mask Pres"    High-res Mask Pressure        cmH2O
 
"Resp Event"    Respiratory Event              ?                                VPAP</nowiki>
 
 
== SAD Pulse Oximetry data ==
 
<nowiki>
 
Code            Details                        Units                            Notes
 
"Pulse"        Pulse Rate                    Beats per minute
 
"SpO2"          SpO2 (Oxygen Saturation)      % Saturation</nowiki>
 
 
The oximetry device that records this information is hideously expensive, notoriously unreliable, and ResMed should be ashamed for releasing it.
 
 
== PLD Low resolution graph data ==
 
 
'''Signal List'''
 
<nowiki>
 
Code            Details                        Units                            Notes
 
"Snore Index"  Snore Index                    ??
 
"Therapy Pres"  Therapy Pressure              cmH2O
 
"Insp Pres"    IPAP / Inspiratory Pressure    cmH2O
 
"MV"            Minute Ventilation            ?
 
"RR"            Respiratory Rate              Breaths per Minute
 
"Vt"            Tidal Volume                  ?
 
"Leak"          Leak Rate                      L/Second (I convert to L/Min)
 
"FFL Index"    Flow Limitation Index          ?
 
"Mask Pres"    Low-res Mask Pressure          cmH2O
 
"Exp Pres"      EPAP / Expiratory Pressure    cmH2O
 
"I:E"          Inspiratory : Expiratory Ratio ?                                VPAP
 
"Ti"            Ti??                          ?                                VPAP
 
"Te"            Te??                          ?                                VPAP
 
"TgMV"          Target Minute Ventialation    ?                                ASV Machines
 
""              Unknown Empty                  ?
 
""              Unknown Empty                  ?</nowiki>
 
 
most ? fields are known, I just have to look them up again..?? fields really are unknown (to me).
 
 
The two empty signals always appear at the end. not entirely sure of their purpose.
 
 
== STR.edf ==
 
 
This file contains a summary database in EDF format. It contains things like AHI indexes, 95% values, etc...
 
 
There is only one copy, in the root directory of the SD-card, and it is updated at the end of a session.
 
 
 
 
Most records contain one entry per day.
 
 
SleepyHead doesn't need much of it, as it provides it's own indexing..
 
 
It does contain some data not available elsewhere, most notably EPR data.
 
 
== ResMed S9 Storage Gotchas ==
 
 
The S9 continuously erases older data to keep the card from overflowing:
 
 
* BRP data older than 7 days.
 
* PLD data older than 30 days.
 
* Everything older than 365 days.
 
 
Regularly backup copies of your SD card to work around this!
 
 
= SleepyHeads Implementation =
 
SleepyHeads EDF parser and S9 importer has been written from scratch
 
 
It consists of two parts
 
* A generic EDF parser class named '''EDFParser'''
 
* and the custom S9 importer class named '''ResMedLoader'''
 
 
It is implemented in SleepLib/loader_plugins/resmed_loader.cpp / .h
 

Latest revision as of 17:25, 9 May 2019




Donate to Apnea Board