Support Apnea Board & OSCAR  

Difference between revisions of "S9 Data Format"

From Apnea Board Wiki
Jump to: navigation, search

m (Identification.tgt)
m (Identification.tgt)
Line 41: Line 41:
 
===Identification.tgt===
 
===Identification.tgt===
 
This file holds an extensive number of data and parameters of the machine.
 
This file holds an extensive number of data and parameters of the machine.
 +
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
 
! Code !! Remark !! Explanation !! Example
 
! Code !! Remark !! Explanation !! Example
 
|-
 
|-
| #IMF|| All later models || Example || Example
+
| #IMF|| All later models || Example || #IMF 0001
 
|-
 
|-
| #VIR|| All later models|| Example || Example
+
| #VIR|| All later models|| Example || #VIR 0064
 
|-
 
|-
| #RIR|| All later models|| Example || Example
+
| #RIR|| All later models|| Example || #RIR 0064
 
|-
 
|-
| #PVR|| All later models|| Example || Example
+
| #PVR|| All later models|| Example || #PVR 0064
 
|-
 
|-
| #PVD|| All later models|| Example || Example
+
| #PVD|| All later models|| Example || #PVD 000F
 
|-
 
|-
| #CID|| All later models|| Example || Example
+
| #CID|| All later models|| Example || #CID CX040-044-018-015-100-100-100
 
|-
 
|-
| #RID|| All later models|| Example || Example
+
| #RID|| All later models|| Example || #RID 0012
 
|-
 
|-
 
| #VRN|| Only S9 Models || Example || Example
 
| #VRN|| Only S9 Models || Example || Example
Line 65: Line 66:
 
| #NID|| Only S9 Models|| Example || Example
 
| #NID|| Only S9 Models|| Example || Example
 
|-
 
|-
| #VID || All Models || Example || Example
+
| #VID || All Models || Example || #VID 002C
 
|-
 
|-
| #SRN|| All Models|| Serial number || Example
+
| #SRN|| All Models|| Serial number || #SRN 22182060837
 
|-
 
|-
| #SID|| All Models || Example || Example
+
| #SID|| All Models || Example || #SID SX584-0201
 
|-
 
|-
 
| #RID|| Only S9 Models || Example || Example
 
| #RID|| Only S9 Models || Example || Example
 
|-
 
|-
| #PNA || All Models || Example || Example
+
| #PNA || All Models || Example || #PNA Lumis_VPAP_150_ST
 
|-
 
|-
| #PCD|| All Models || Example || Example
+
| #PCD|| All Models || Example || #PCD 28328
 
|-
 
|-
| #PCB|| All Models || Printed Circuit Board number? || Example
+
| #PCB|| All Models || Printed Circuit Board number? || #PCB (90)R280-776(91)T3(21)89180702
 
|-
 
|-
| #MID|| All Models || Example || Example
+
| #MID|| All Models || Example || #MID 0028
 
|-
 
|-
| #FGT|| All Models || Example || Example
+
| #FGT|| All Models || Example || #FGT 28_M40_V44
 
|-
 
|-
| #BID|| All Models || Example || Example
+
| #BID|| All Models || Example || #BID SX585-0100
 
|}
 
|}
  

Revision as of 12:42, 8 July 2020

Full-48.png

Afrikaans / في الصفحة / български / 中国 / 臺灣 / čeština/ Dansk / Deutsch / Ελληνικά / Español / Filipino / Français / עברית / Magyar / Italiano / 日本語 / 한국어 / Nederlands / Norsk / Polskie / Português / Română / Pусский / Suomalainen / Svenska / ภาษาไทย / Türkçe
--> Do not use these buttons when you are on a translated page. Just close this tab to go back. <--

ResMed Data Format (Excluding S8 models)

This page was originally written by Mark Watkins, during the initial build of the SleepyHead program. It needs change in approach, or should be taken as "history".

Data format analysis

Grade: C (extra points awarded for being open)

Negatives

  • Only keeps basic summary data when the 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 causes 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 Data Format for S9 and later models

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 here

It is rather verbose, but sensibly designed..

The Event Annotations are a little tricky.

S9 SDCard Folder Structure

[DATALOG]            Folder containing all the session data
Identification.crc   Checksum info
Identification.tgt   Machine identification data
Journal.dat          tbd
STR.crc              Checksum info
STR.edf              All overall summary information

Identification.tgt

This file holds an extensive number of data and parameters of the machine.

Code Remark Explanation Example
#IMF All later models Example #IMF 0001
#VIR All later models Example #VIR 0064
#RIR All later models Example #RIR 0064
#PVR All later models Example #PVR 0064
#PVD All later models Example #PVD 000F
#CID All later models Example #CID CX040-044-018-015-100-100-100
#RID All later models Example #RID 0012
#VRN Only S9 Models Example Example
#VPC Only S9 Models Example Example
#NID Only S9 Models Example Example
#VID All Models Example #VID 002C
#SRN All Models Serial number #SRN 22182060837
#SID All Models Example #SID SX584-0201
#RID Only S9 Models Example Example
#PNA All Models Example #PNA Lumis_VPAP_150_ST
#PCD All Models Example #PCD 28328
#PCB All Models Printed Circuit Board number? #PCB (90)R280-776(91)T3(21)89180702
#MID All Models Example #MID 0028
#FGT All Models Example #FGT 28_M40_V44
#BID All Models Example #BID SX585-0100

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

20110601_021922_EVE.edf
(date)_(time)_(type).edf

The 4 File Types

Type  Details
EVE    Event annotation data
BRP    High resolution graph data 
SAD    Pulse oximetry data
PLD    Low resolution graph data

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

Code            Details                        Units                            Notes
"Flow"          Flow Rate                      ?
"Mask Pres"     High-res Mask Pressure         cmH2O
"Resp Event"    Respiratory Event              ?                                VPAP

SAD Pulse Oximetry data

Code            Details                        Units                            Notes
"Pulse"         Pulse Rate                     Beats per minute
"SpO2"          SpO2 (Oxygen Saturation)       % Saturation

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

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                  ?

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




Donate to Apnea Board