sawinglogz
81a2945d0e
Clean up F3V3 settings parsing. It turns out its humidifier settings are different from F0V4 and F5V012.
2019-10-03 12:33:28 -04:00
sawinglogz
445c74a70e
First pass at F3V3 summary and settings parsing based on 3 sample sessions.
2019-10-02 20:21:43 -04:00
sawinglogz
d87dd6a0aa
Fix ParseFlexSetting for F5V012 rise time.
...
ParseFlexSetting is largely untouched, but as a result also untested.
We should double-check it for all families and versions.
2019-10-02 19:14:24 -04:00
sawinglogz
6e5c751dd5
Finish cleaning up F5V012 settings from sample data.
2019-10-02 18:57:42 -04:00
sawinglogz
16caab4ce5
Add missing events to ParseSummaryF5V012, identify additional settings.
2019-10-02 11:55:44 -04:00
sawinglogz
fd7b5f8be0
Initial pass at ParseSummaryF5V012 based on F0V4.
...
It turns out each familyVersion has records of different sizes, including
the first one containing the settings. It may make more sense to split
summary and/or settings parsing into multiple familyVersion-specific functions.
Also it looks like the F0V4 humidifier settings are actually 60 Series
settings, and the "V2" settings are original System One settings, not
all fileVersion 2 machines.
2019-10-01 18:30:32 -04:00
sawinglogz
fe6c1ec2fa
Split settings from summary parsing for F5V012 and F3V3.
2019-10-01 11:38:16 -04:00
sawinglogz
346d0a8e60
Identify common F0V4 summary statistics.
2019-10-01 11:29:31 -04:00
sawinglogz
166ada843b
Add "support" for clock adjustment event ParseSummaryF0V4 and cleared event in ParseSummaryF0V23.
...
"Support" in this instance means that it will quietly ignore the events, since there's really
nothing to import. But this means that parsing will correctly continue past the events, even
though so far they're the only events in a session. There are diagnostics to log if that
assumption turns out not to be correct.
2019-09-30 15:46:26 -04:00
sawinglogz
4b5cdb8192
Add support for new Time Elapsed event in ParseSummaryF0V4.
...
Still trying to figure out timestamp event.
Other summary parsers will need review, since there was an initial
filter that was dropping sessions that began with event 5 or 6,
now commented out.
2019-09-30 10:23:28 -04:00
sawinglogz
e264a86164
First pass at ParseSummaryF0V4, needs testing.
...
Based on the F0V23 loop and F0V6 switch statement, along with manual review of
several sample files to determine record length.
Split ParseHumidifierSettingF0V4 out from ParseSettingsF0V4.
2019-09-28 20:47:24 -04:00
sawinglogz
13395d9c35
Finish cleaning up ParseSettingsF0V4.
2019-09-28 19:31:37 -04:00
sawinglogz
8f49633131
Improve F0V4 settings support, especially humidification.
2019-09-28 18:23:18 -04:00
sawinglogz
c24b29c80a
Partially parse F0V4 humidification settings, need to review more samples to complete.
2019-09-26 12:37:01 -04:00
sawinglogz
e973109ccc
First pass at adding missing settings to F0V4, lots still to find.
2019-09-25 11:17:16 -04:00
sawinglogz
fd23108c3d
Refactor ParseSummaryF0V23 to match loop structure of F0V6. No change to imported data.
2019-09-24 21:07:10 -04:00
sawinglogz
55525cdc01
Update ParseComplianceF0V23 to use new ParseSettingsF0V23, since the data format is the same.
...
This also pushes something that seemed to be settings back into ParseSummaryV023.
2019-09-24 17:00:49 -04:00
sawinglogz
5d40051d70
Split settings parsing out of F0V23 and F0V4 summary parsers.
2019-09-24 16:27:27 -04:00
sawinglogz
9f330b2ec4
Add length checking to PRS1 F0V6 settings.
2019-09-23 14:26:38 -04:00
sawinglogz
bb9cce787c
Parse backup breathing settings for DreamStation 900X machines.
...
No change to imported data.
2019-09-23 14:10:23 -04:00
sawinglogz
2e04755b53
Parse backup breathing settings for DreamStation 1030X-1130X machines.
...
No change to imported data.
2019-09-23 14:04:22 -04:00
sawinglogz
50d60385bd
Add Flex mode setting for DreamStation 900X machines.
2019-09-23 12:56:06 -04:00
sawinglogz
9f28dae627
Add Flex mode setting for DreamStation 1030X-1130X machines.
2019-09-23 12:39:20 -04:00
sawinglogz
21f61d7527
Add Flex mode setting for DreamStation 200X-700X machines.
2019-09-20 15:38:14 -04:00
sawinglogz
3c1a7adaa3
Add support for many DreamStation settings, changes to flex mode require rebuilding all PRS1 databases.
2019-09-20 12:59:14 -04:00
sawinglogz
76a71802ab
Rename some internal PRS1 parsing enums to match report terminology.
...
This affects parser YAML output, but has no effect on imported data.
2019-09-20 00:15:40 -04:00
sawinglogz
adc887c5f8
Import additional DreamStation settings:
...
- hose diameter
- auto on
- auto off
- mask resist lock (parsed only)
- show optional screens (parsed only)
2019-09-19 21:29:33 -04:00
sawinglogz
ccfce7fd2e
Add internal parsing (and YAML output) for known DreamStation events that won't get imported.
...
These are events that are in the PRS1 files but which OSCAR doesn't know how to present:
- An F0V6 event with duration that looks like PB or LL but doesn't appear on any official reports
- The Auto-CPAP pressure to use at the beginning of a session
- A report of the snores detected at each pressure/EPAP/IPAP
- Apnea alarms on F3V6
Rather than bury the understanding in commented-out sections of the parser, these events
will now be parsed and added to the internal event stream, which allows them to be dumped
to YAML. Whenever OSCAR eventually supports these data, the importer will have ready
access to them.
Again, no change to external behavior.
2019-09-19 16:43:24 -04:00
sawinglogz
95e2baad26
Distinguish between pressure adjustment events and average pressure stats on PRS1.
...
This only affects the parser at this point, and the importer has been updated so that
there is no externally visible change to the imported data.
Eventually we'll need to figure out how to display the two differing kinds of
pressures, at which point we'll need to fix the importer to use the right channels,
instead of the inconsistent treatment now.
2019-09-19 14:21:12 -04:00
sawinglogz
5e4a24b237
Add support for F3V6 sessions without ramp, with apnea alarm.
2019-09-19 10:33:23 -04:00
Seeker4
aaf5627891
Ignore zero-length files and add qWarning messages for ignored files.
2019-09-16 11:53:27 -07:00
sawinglogz
45018f4903
Update PRS1 loader from 500G110 test data.
2019-09-07 15:02:16 -04:00
Phil Olynyk
efad208143
Adjust epcoh for time zone offset
2019-08-30 14:48:03 -04:00
sawinglogz
6b86eb1b11
Fix minor regression for PRS1 F3V6 mode import.
2019-08-28 21:53:50 -04:00
sawinglogz
febf3d2f5b
Split PRS1 device mode parsing from imported modes.
...
This allows the parsing to accurately represent the data, even for modes that
OSCAR doesn't yet support.
2019-08-28 21:30:25 -04:00
sawinglogz
42f0745666
Improve settings interpretation for F3V6, though still not exactly right.
...
The next step will be to split parsing from mode interpretation, so that
we can at least accurately identify all of PRS1's modes. Then we can
work on mapping that to OSCAR's notion of modes, which probably then needs
to be augmented.
2019-08-20 12:48:15 -04:00
sawinglogz
ecb71e5706
Calculate PRS1 F3V6 pressure support settings, since we currently display them.
2019-08-20 12:08:24 -04:00
sawinglogz
0c816c7d4c
Avoid pos++ in PRS1 DreamStation parsers to that events can be issued independently of parsing order.
2019-08-20 11:38:55 -04:00
sawinglogz
6c85195b39
Remove unused variable that clang missed.
2019-08-19 12:23:45 -04:00
sawinglogz
928e50fcc1
Use actual product names for PRS1 instead of mangled approximations.
2019-08-18 17:03:52 -04:00
sawinglogz
66d9340cbb
Don't mangle the model name for ResMed machines.
2019-08-18 16:56:41 -04:00
sawinglogz
0b8f89036a
Merge branch 'master' into prs1-f0v6
2019-08-14 09:15:39 -04:00
sawinglogz
675f6d4361
Resolve remaining F0V6 event 3 debug messages in sample data.
2019-08-13 23:03:20 -04:00
sawinglogz
cc80a3ef09
Remove F0V6 logic from PRS1DataChunk::ParseEventsF0V234, no functional change.
2019-08-13 21:09:55 -04:00
sawinglogz
3eee72390e
Clean up PRS1DataChunk::ParseEventsF0V6, no change in functionality.
2019-08-13 17:29:05 -04:00
sawinglogz
73dfdac81b
Add debug logging for PRS1 F0V6 event 3.
2019-08-12 21:51:37 -04:00
sawinglogz
3de32dd21b
Fix F0V6 PB starting time, and probably LL and PS as well.
2019-08-12 17:20:25 -04:00
sawinglogz
946293b67d
Split PRS1Import::ParseF0Events into ParseEventsF0V6, no changes yet.
2019-08-12 16:58:27 -04:00
harre
77ccd417a3
Fix deprecated-copy errors and made deprecated-declarations just a warning
2019-08-06 23:49:51 +02:00
sawinglogz
d99e397cb3
Update PRS1 parser for 500X, 600X, and 700X events.
2019-08-06 15:47:36 -05:00
Seeker4
5cf6e14816
Fix problems resulting in compiler warning messages
2019-08-06 12:33:48 -07:00
sawinglogz
7dd891df31
Add more F0V6 events based on remaining 400X sample data.
2019-08-05 21:37:19 -05:00
sawinglogz
64309f366a
Add PRS1 model 562P to list of tested machines.
2019-08-05 20:46:05 -05:00
sawinglogz
84f1389d51
Support more F0V6 events based on all sessions from a single 400X machine.
2019-08-05 15:22:22 -05:00
sawinglogz
4e863ba484
Add first confirmed F0V6 events from sample data.
2019-08-04 21:09:42 -05:00
sawinglogz
e0d4872f6b
Create placeholder event parser for PRS1 F0V6, separate from other F0 machines.
2019-08-04 19:36:40 -05:00
Phil Olynyk
f7227b7316
Don't create (summary) sessions when maskon == maskoff
2019-08-01 13:30:11 -04:00
sawinglogz
8ef4766efd
Fix F3V6 imported channels to match reports.
2019-07-27 15:04:20 -04:00
sawinglogz
46a077cb43
Clean up remaining F3V6 import messages.
2019-07-26 22:53:15 -04:00
sawinglogz
5835e6de9c
Remove commented-out F3V6 event code.
2019-07-26 22:29:23 -04:00
sawinglogz
56684de3bc
Add support for more F3V6 events based on more sample sessions.
2019-07-26 22:13:26 -04:00
sawinglogz
eedd41efdf
First pass at parsing F3V6 events, largely based on F5V3 and revised based on a sample session.
2019-07-25 21:44:36 -04:00
sawinglogz
a2bcbf1b00
Fix pressure gain for F3V6 events and waveforms.
...
Also change fileVersion == 3 tests to appropriate familyVersion for ASV and ventilators, respectively.
2019-07-24 22:42:00 -04:00
sawinglogz
d33e7585bf
Remove broken original F3V6 summary parser.
2019-07-24 16:51:50 -04:00
sawinglogz
9e54b98cf6
First pass at actual F3V6 (1030X, 1130X) summary and settings support based on sample data. Events are still broken.
2019-07-24 16:50:51 -04:00
sawinglogz
872fe74008
Add stub F3V3 summary parser so that events and waveforms will still get loaded.
2019-07-23 20:54:39 -04:00
sawinglogz
83b80cb252
Restrict the current PRS1 F3 summary parser to F3V6, which is all it could (badly) handle anyway.
2019-07-23 20:54:25 -04:00
sawinglogz
1f56927695
Recognize additional PRS1 900X settings.
2019-07-23 12:52:41 -04:00
sawinglogz
74de65778e
Fix memory bug in ResMed loader.
2019-07-10 12:37:40 -04:00
sawinglogz
c1aa016a46
Add trivial unit tests for ResMed loader.
2019-07-10 12:33:00 -04:00
Seeker4
0d0a5550d0
Do not add 10 to Hypopnea duration as was done in SleepyHead. ResMed does not report Hypopnea duration so we should not invent it.
2019-07-05 10:28:15 -07:00
Seeker4
a9c3b363b9
Add some qDebug() statements for invalid start dates
2019-06-30 08:59:29 -07:00
Seeker4
85efcace3e
Add a qDebug() statement if start date for an EDF file is zero.
2019-06-28 19:53:46 -07:00
Seeker4
d58bdc9452
Discard sessions with first timestamp of 0 to fix phantom date problem.
2019-06-25 06:23:04 -07:00
sawinglogz
43ec3ab4af
Fix a few PRS1 unused variable warnings that only gcc catches.
2019-06-21 21:04:16 -04:00
sawinglogz
581515e595
Merge branch 'master' into prs1-fixes-2
2019-06-21 15:26:57 -04:00
sawinglogz
ea638cdbbb
Update PRS1 series detection to use model name.
...
Also fix an issue with initializing the model names, since QObject::tr
won't work at global initialization time. And series detection needs
the untranslated names anyway.
2019-06-20 00:09:28 -04:00
sawinglogz
5a71e96ed6
Remove unused PRS1 code, add series to model names where missing.
2019-06-19 23:23:15 -04:00
sawinglogz
628ddda472
Fill out remaining PRS1 names as shown on official reports.
...
Also clean up brick detection.
The official names don't yet appear anywhere, since there's a question
of how to juggle manufacturer, series, and model name in the various
places they're (inconsistently) displayed.
Series is also used to pick the machine icon.
2019-06-19 22:19:16 -04:00
sawinglogz
423bfccc5a
Add a few comments for future 900X improvements.
2019-06-19 17:50:41 -04:00
sawinglogz
ec73958b4a
Add leak to 900X, clean up summary stats and old implementation.
2019-06-19 17:28:42 -04:00
sawinglogz
d9152436de
Add missing 900X events based on sample data.
...
They're not all fully understood, such as a pressure adjustment
variant and several different hypopnea variants, one of which
has an extra data field.
2019-06-19 16:23:28 -04:00
sawinglogz
264ff2f2fa
Add comments to 900X parsing based on sample review and discussions.
2019-06-17 17:33:39 -04:00
sawinglogz
a7f249218f
Fix start time for 900X TB, PB, and LL.
...
It turns out OSCAR silently treats span events' timestamps as
and end time when drawing.
2019-06-15 21:45:58 -04:00
sawinglogz
4e5174343e
First pass at 900X event parsing and clean up F5V3 pressure gain throughout.
...
This fixes the mask pressure graph as well as many of the events.
There are still some issues with presentation: some of the events are
being drawn at the wrong time, and certain events and statistics
don't really behave the way they're displayed.
Also several events have yet to be encountered in sample data.
2019-06-15 21:04:09 -04:00
Phil Olynyk
73a225556a
Fix date and time handling for new CMS50Dplus model
2019-06-15 15:42:47 -04:00
sawinglogz
fcd7f8d463
Finish cleaning up 900X summary parsing.
...
There are still unknown values, but they'll need to be tracked down
after events are cleaned up. They no longer emit warnings.
2019-06-13 22:20:34 -04:00
sawinglogz
b1d76becab
Fill in some 900X summary statistics values.
2019-06-13 21:29:43 -04:00
sawinglogz
2634aa0d16
Initial support for 900X summary.
...
Pressure settings are now properly being found and decoded, but there are lots
of unknown fields to figure out.
It turns out it uses the same humidifier setting encoding as F0V6, and the first
several slices seem to be the same. But pressure encodings are different, with
a gain of 0.125 instead of 0.1, presumably to allow for a maximum pressure of
30 cmH2O.
2019-06-13 20:31:21 -04:00
Phil Olynyk
589eec69ec
Merge branch 'master' into fix-cms50dplus
2019-06-13 14:09:51 -04:00
sawinglogz
52fd3a46d3
Merge branch 'master' into prs1-fixes
2019-06-12 20:37:26 -04:00
sawinglogz
4527a7091d
Clean up remaining DreamStation parsing warnings.
2019-06-12 20:37:04 -04:00
sawinglogz
d0903ce3bd
Add initial support for DreamStation Auto-Trial and CPAP-Check modes.
...
This resolves many of the unexpected value warnings in the sample
data, but there are still a bunch to tackle.
2019-06-11 21:26:40 -04:00
Seeker4
24258ea4e3
Correctly identify Climate setting as Auto or Manual in Machine Settings on Daily page.
2019-06-11 10:20:03 -07:00
Phil Olynyk
b6427de247
Add moule name to debug, force tab enable after import
2019-06-11 10:30:51 -04:00
sawinglogz
2383c11be2
Minor clean up of F0V6 summary parsing, fix GUI build bug.
2019-06-10 20:57:05 -04:00
sawinglogz
96815cb068
Add support for 700X summary data.
2019-06-10 20:30:05 -04:00
sawinglogz
4e8a6514ef
Add support for 600X summary data.
2019-06-10 15:30:22 -04:00
sawinglogz
92f029a5f4
Add support for 502G summary data.
...
Not many changes, just some new unknown settings, and warning
when there's a 0-length slice.
2019-06-10 15:07:20 -04:00
sawinglogz
a66dd145b8
Add support for 500X summary data.
...
This one's slice 8 is shorter than anything else we've seen before!
Also add support for a new slice type and noted possible values
for other data, including a possible lead on the CPAP mode.
2019-06-10 14:30:50 -04:00