Commit Graph

1421 Commits

Author SHA1 Message Date
sawinglogz
350f046ed4 Bump VERSION since we're past the release of alpha.0. 2022-02-16 16:47:05 -05:00
sawinglogz
a9e9cb118c Fix a null pointer crash when reading PRS1 compliance files with multiple chunks.
This doesn't happen normally, but OSCAR shouldn't crash, even when
encountering cards with corrupted directories.
2022-02-16 16:45:26 -05:00
Guy Scharf
d38d2c8404 Fixes #333: ExportCSV now exports statistics data on Session export properly
Previously, it was exporting statistics only for days that had been
  viewed on the Daily page because it was not loading event data before
  computing the statistics, resulting in values of 0.0 instead of correct values.
2022-02-02 11:27:39 -07:00
Phil Olynyk
7d1d1faeb6 DS2 testing update - VERSION and relNotes 2022-01-27 18:49:34 -05:00
sawinglogz
fd17699692 Add 520X150C to the list of tested machines. 2022-01-26 11:11:24 -05:00
sawinglogz
a5c18db7cf Fix regression in be24a3e that broke some builds.
Qt Creator builds weren't working, nor was Windows command-line.
2022-01-26 11:02:47 -05:00
sawinglogz
41b2c27d60 Add support for HT12 heated tube new to DreamStation 2. 2022-01-24 16:04:08 -05:00
sawinglogz
00974d4f49 Skip empty DS2 files.
Also update comments based on further testing.
2022-01-24 16:04:08 -05:00
sawinglogz
eac13160b9 Cache DS2 keys during import for a 3x speedup.
Crypto overhead now makes import take only twice as long, instead of
of 22x before optimization.
2022-01-24 16:04:08 -05:00
sawinglogz
be24a3ec4f Add -O3 flag when compiling crypto libraries.
The optimized code is surprisingly fast, only a small percent slower
than specialized instructions, which can't really be used with an
amalgamation build of Botan.

This makes DS2 regression tests way faster.
2022-01-24 16:04:08 -05:00
sawinglogz
b96718afeb Add optional crypto benchmark to unit tests. 2022-01-24 16:04:08 -05:00
sawinglogz
4b4a0edb0e Refactor library-dependent crypto calls into separate file and add unit tests. 2022-01-24 16:04:07 -05:00
sawinglogz
1cf4b2b6eb Add support for decrypting DS2 files with non-default keys. 2022-01-24 16:04:07 -05:00
sawinglogz
ec52b8b436 Add GUID from DreamStation 2 files to machine properties. 2022-01-24 16:04:07 -05:00
sawinglogz
6609d6888a Update version to v1.3.2-alpha.0.
This is a post-1.3.1 placeholder from which we can branch if we
need a 1.3.2 maintenance release before the next major version.

In the mean time, any builds from master will be treated as newer
than 1.3.1.
2022-01-24 10:10:55 -05:00
Phil Olynyk
3ca1ee2438 Update VERSION to v1.3.1 2022-01-23 10:56:54 -05:00
sawinglogz
d44b51f245 Work around a Qt bug on Fedora 35 that caused hangs when selecting files.
This disables the shift-key check at launch on Linux, but Linux users
can use --legacy if the functionality turns out to be relevant for Linux.
2022-01-14 11:45:54 -05:00
Guy Scharf
2470e55b29 Add report footer to first page of printed Statistics report.
All compliance data is on the first page of the report.
  Include report footer on this page in case user wants to give
  the doctor just the first page of the report.
2022-01-14 06:39:00 -07:00
Phil Olynyk
d4b943ef33 Update to beta-2 2022-01-11 14:30:07 -05:00
sawinglogz
df43925d02 Add support for CheckMe O2 Max.
Technically it was already supported, but it generated a lot of warnings
because of data we had never seen or tested. Now that we have test data,
those warnings can go away.
2022-01-10 20:14:04 -05:00
Phil Olynyk
b8eb0e113f Move mis-placed QTime decls into EFFICIENY ifdef 2022-01-10 18:02:25 -05:00
Phil Olynyk
395dfe1020 Remove PlaceholderText from ui files for old QT 2022-01-10 13:08:43 -05:00
ArieKlerk
6bbb656c02 Here are the promised translation-cleaned program files plus updated language files 2022-01-10 16:49:23 +01:00
Phil Olynyk
42cc67e8d9 Use ToTimeDelta instead of AddWaveform in LoadPLD 2022-01-09 17:35:32 -05:00
Guy Scharf
59e4b5be41 Add tooltip to index names on Daily page that shows channel description.
Update release notes to match, and show changes as in 1.3.1-beta-2
2022-01-09 14:51:08 -07:00
Phil Olynyk
321a94379f Skip 20 secs of TiVol, RR, and MinVent; update release notes 2022-01-09 13:49:53 -05:00
Phil Olynyk
d6a925e456 Add check for min pressure equals zero to STR processing. 2022-01-07 19:25:56 -05:00
Phil Olynyk
2f975ea7e9 Add Canadain model number 39423 to tested list 2022-01-07 13:00:19 -05:00
Phil Olynyk
8c997a68e8 Clean up unnecessary debug output 2022-01-05 15:35:35 -05:00
Phil Olynyk
f7b7590207 Fix pressures for A4Her, revise mode code 2022-01-03 16:23:11 -05:00
Phil Olynyk
707a76b089 Set TidalVolume units to mL, add debug for min_pressure 2022-01-01 20:49:40 -05:00
Guy Scharf
29212745f7 Update Statistics page after editing profile
This makes profile changes immediately visible rather than
  requiring closing and re-opening the profile in OSCAR to see changes.
2021-12-21 18:49:50 -07:00
Guy Scharf
b22e0cd026 Fix problem with minimum pressure sometimes shown as zero on Overview and Statistics pages.
Journal session was corrupted with channel id's not valid for journals.
  May have been caused by incorrect QHash coding in MinutesAtPressure.cpp
  Revised Min and Max functions not to look at MT_JOURNAL sessions.
  Updated release notes,.
2021-12-20 11:27:48 -07:00
sawinglogz
2c5d59e666 Fix missing oximetry and motion waveforms on Overview pages.
Motion channels reported by oximeters and oximetry channels reported
by CPAPs weren't being calculated, so they'd always be blank when
present.
2021-12-20 12:42:45 -05:00
sawinglogz
ecc6bad213 Remove an unexpected data alert based on new PRS1 sample data.
In this specific instance, replace it with a warning in the debug log.
2021-12-14 17:14:47 -05:00
Phil Olynyk
3f649fc0f5 Update releaseNotes with ResMed changes, update VERSION to v1.3.1-beta-1 2021-12-10 20:19:57 -05:00
sawinglogz
704d6d7c9e Add 401X150 to the list of tested machines.
Also update F0V6 warnings based on new test data.
2021-12-10 13:43:03 -05:00
Guy Scharf
cda41274d5 Add date range option to Statistics page.
Implement existing (but hidden) UI for data range and modify reporting as needed.
  This is not the ideal solution to this feature. It would be better to have a pop-up
  dialog that asked for beginning and ending dates of range and size of interval for
  interval reporting.
2021-12-10 00:54:14 -07:00
Guy Scharf
03b0dc5441 Name combobox as Charts in lower right corner of Overview page 2021-12-05 11:51:20 -07:00
sawinglogz
12aecc521c Update 900X warnings based on new test data. 2021-12-03 12:45:29 -05:00
Guy Scharf
41a1872068 Improve Graphs and Event Types combo boxes on Daily page
Done by adding a dummy first element to combo box and changing its text as needed
  Now shows total number of graphs or event types, and number active if not all are active.
2021-11-29 21:08:05 -07:00
Jeff Norman
11da0d2a07 Merge branch 'master' into update-macOS-icons 2021-11-29 10:35:04 -05:00
Guy Scharf
8a1a36fa67 Fix #endif typo in DV6 loader 2021-11-29 15:18:18 +00:00
sawinglogz
3a0fce1411 Add 261P to the list of tested machines.
Also update F0V4 warnings based on new test data.
2021-11-29 10:07:11 -05:00
Jeff Norman
0a937a8b9a Updated OSCAR.icns for macOS.
Added 2 missing icons.
Added hi-res Retina icons.
Updated README for icons with more Mac details.
2021-11-28 23:45:07 -05:00
Guy Scharf
21fc564578 Improve event flag positioning slightly.
The timestamp supplied by the DV6 CPAP machine doesn't match events to the flow graph very well.
This change helps a little. Event flags may be before or after the event in the flow graph.
And, once in a long while, it's exactly right!
2021-11-27 22:10:40 -07:00
Guy Scharf
a8a56dff02 Replace BRICK! with better message. Improve appearance of "no data" messages. 2021-11-27 13:20:48 -07:00
sawinglogz
09753cc50c Add 460PBT to the list of tested machines. 2021-11-11 15:40:20 -05:00
Guy Scharf
6e1ffaebde Add diagnostics for --datadir on Linux and Mac 2021-11-06 16:58:42 -07:00
sawinglogz
4ebde70550 Remove unused signal replaced by deviceIsUnsupported in 08f4e2a. 2021-11-05 14:29:12 -04:00
sawinglogz
bf3c760057 Clarify debug message when encountering DS2 without default keys. 2021-11-05 14:29:12 -04:00
sawinglogz
da6047d32d Refine support for DS2 settings. 2021-11-05 14:29:12 -04:00
sawinglogz
7a47c7c7e3 Add initial support for new DS2 settings. 2021-11-05 14:29:12 -04:00
sawinglogz
139e1e8a8d Recognize DS2 files with .B01, etc. file extension. 2021-11-05 14:29:12 -04:00
sawinglogz
b7e0263429 Update credits to reflect third-party libraries and their licenses.
Also move miniz to the thirdparty directory for clarity.
2021-11-05 14:29:12 -04:00
sawinglogz
48130243ed Fix minor PRS1 regression introduced in 8fd2840.
Complete failures were incorrectly being treated as fully up to date.
2021-11-05 14:29:12 -04:00
sawinglogz
1f3f33c45a Add DS2 icon and model number. 2021-11-05 14:29:12 -04:00
sawinglogz
9b6cc46942 Add initial support for decrypting DS2 files with default keys. 2021-11-05 14:29:11 -04:00
Guy Scharf
9acd685f73 --datadir option now allows fully qualified paths on Mac, Linux.
Before, fully qualified paths were supported only for Windows.
2021-11-04 21:01:18 -07:00
Guy Scharf
eaf88b0d23 Add 95% flow limitation to Therapy Efficacy section on Statistics page
Flow limitation index is already there, for machines that report an index.
This adds flow limitation statistics to report for ResMed machines.
2021-11-03 18:06:50 -07:00
Jeff Norman
59e1b2817b Updated copyright year to 2022 for OSCAR files 2021-11-02 16:34:12 -04:00
sawinglogz
a838e343ce Add support for new tubing type setting code on 700X110 v1.2. 2021-10-28 14:17:28 -04:00
sawinglogz
a445781167 Remove noisy debug message in PRS1 loader.
In theory it was useful to know why files were skipped, but in practice we
normally skip all but the most recent files, often thousands. If you had the
misfortune to have the debug pane open, you'd have to wait for an extra
minute or two for all those messages to scroll by.

If and when we can limit import scanning to files that are new or changed,
then the debug message will be useful again.
2021-10-28 14:17:27 -04:00
sawinglogz
8e2b8efd41 Create prettier dmg files for macOS.
Thanks to Jeff8356 for his scripting!
2021-10-28 14:17:27 -04:00
sawinglogz
838e5a8044 Preserve all oximeter channels except for the ones to be recalculated.
Previously only specific channels were preserved, leaving out channels
provided by newer oximeters.
2021-10-28 14:17:27 -04:00
sawinglogz
66d311afca Remove broken and misguided "compression" during oximetry cleanup.
You can't simply drop identical samples in a waveform with a fixed sample rate.
2021-10-28 14:17:27 -04:00
Phil Olynyk
69a515baf2 Look for AS11 Ident file first 2021-10-27 23:23:38 -04:00
Phil Olynyk
71f77d1336 Uncomment the skip of 10 seconds for pressures 2021-10-27 20:47:20 -04:00
Phil Olynyk
0ebf7b1a43 revise AS11 mode handling; translate to s9/AS10 values 2021-10-27 20:26:18 -04:00
sawinglogz
749c6a3358 Remove remaining Machine dependencies from PRS1 loader.
Now that properties are in the MachineInfo record, we don't need
to call PeekProperties a second time to fill out the machine
record.

Also remove some unused variables and methods from class definition.
2021-10-26 15:23:08 -04:00
sawinglogz
a4fdb03c49 Move Machine properties into MachineInfo.
This will help loaders be less tied to the Machine data structure.
Since Machine contains a MachineInfo, this changes no functionality.
2021-10-26 14:59:41 -04:00
sawinglogz
2281209a20 Fix gcc compile error introduced by a4296b5e.
Also make it easier to test OSCAR calculations performed after import.
2021-10-26 14:43:14 -04:00
sawinglogz
d631a77b5b Remove false positives from a noisy debug message.
It looks like only PRS1 uses MINOR_FLAG, and we don't care about
the CPAP_PressurePulse channel missing valuesummary.
2021-10-26 12:30:35 -04:00
sawinglogz
8fd2840e15 Fix the PRS1 loader to fully import DS1 data after it skips DS2 data.
This was a very specific edge case: when there was a single new DS1
session, the error resulting from encountering DS2 data would make
OSCAR think that it had imported zero sessions, even though it had
half-imported the DS1 session. (Those sessions would be lost after
quitting OSCAR.)
2021-10-26 12:24:31 -04:00
sawinglogz
947a27b78a Move database writing from PRS1Loader into ImportContext. 2021-10-26 10:28:30 -04:00
sawinglogz
18e97bb025 Reduce PRS1Loader dependency on Machine data structure. 2021-10-26 10:28:30 -04:00
sawinglogz
4bfe062ae9 Initialize ImportContext for non-CPAP devices.
Now the loaders imported via the Data menu have access to the
unsupported/untested/brick signals and CHECK_VALUE and UNEXPECTED_VALUE
macros.

Now only devices imported via the oximetry wizard are left out,
since we need to revisit that entire workflow.

Also removed the unused Profile::Import() method.
2021-10-26 10:28:29 -04:00
sawinglogz
08f4e2a5b7 Move ImportContext and ImportUI creation into main application.
Now all CPAP loaders have access to the unsupported/untested/brick signals
and CHECK_VALUE and UNEXPECTED_VALUE macros.

Also remove superfluous unsupported flag in MachineLoader.
2021-10-26 10:28:29 -04:00
sawinglogz
4c0677fca1 Move ImportContext and ImportUI signals out of PRS1Loader into MachineLoader.
This will allow any loader to make use of them.
2021-10-26 10:28:29 -04:00
sawinglogz
e8aa42db98 Move CHECK_VALUE and UNEXPECTED_VALUE macros into ImportContext header.
Any loader that uses ImportContext will be able to use them.
2021-10-26 10:28:29 -04:00
sawinglogz
b2b93c6a24 Move untested/unsupported/brick alerts into ImportUI. 2021-10-26 10:28:29 -04:00
sawinglogz
de40161e8c Add ImportContext to begin reducing loader dependencies on Profile.
For now only the PRS1Loader makes use of the ImportContext.
2021-10-26 10:28:29 -04:00
sawinglogz
332fc4294d Remove unintended leak calculation from PRS1 loader.
Now that the post-process calcLeaks properly handles discontinuous
data, don't make the loader pretend that the machine generated
CPAP_Leak data when it didn't.

The resulting data is nearly identical, except for around edge cases
where the "correct" result is isn't clear. For example, when a
pressure changes within a 2-minute reporting interval, the
post-process calcLeaks will use that pressure when calculating
the unintended leak for that interval. The previous PRS1 loader
calculations were inconsistent, but would often apply the pressure
in place at the beginning of the 2-minute interval instead.
Either interpretation could be reasonable, but consistency is
preferred.

These minor differences aren't worth pursuing further, since the
calculated unintended leak looks dubious regardless.

This affects all CPAP/APAP/BiPAP models in the 4xx-7xx range.
In contrast, most ventilators and ASV record unintended leak
data (only the oldest ones don't), and so aren't affected by
these changes.
2021-10-26 10:28:29 -04:00
sawinglogz
a4296b5e93 Reimplement calcLeaks to be correct for discontinuous data. 2021-10-26 10:28:28 -04:00
sawinglogz
b2f86a720c Further zMaskProfile cleanup, no change in functionality. 2021-10-26 10:28:28 -04:00
sawinglogz
5693dcf458 Remove unused code from zMaskProfile.
calcLeaks simply uses linear interpolation based on user settings.
2021-10-26 10:28:28 -04:00
sawinglogz
048515b131 Comment out unused MachineLoader methods. 2021-10-26 10:28:28 -04:00
Guy Scharf
e53b66882e Update copyright notices in code -- no other changes 2021-10-23 20:19:53 -07:00
Guy Scharf
1f1d60bcab Make link to other languages be itself translatable in Release Notes and Credits dialogs 2021-10-23 19:36:51 -07:00
kappa44
f1a9dbfae3 Merge branch 'master' into drift-fix2 2021-10-22 10:12:44 +11:00
Guy Scharf
3a12ae5c71 Some SleepStyle machines were incorrectly identified as Icon machines. 2021-10-21 10:40:58 -07:00
kappa44
5bebf90417 Merge branch 'master' into drift-fix2 2021-10-20 11:02:56 +11:00
kappa44
3cfbda2f69 Fix value display on and exact data points, and near session boundary with drift 2021-10-20 11:02:17 +11:00
kappa44
ac210e9068 Fix value display near session boundary with drift 2021-10-20 11:01:25 +11:00
Guy Scharf
dabfb26152 Update VERSION to 1.3.1-alpha.0. Update copyright notices in HTML files to 2022. 2021-10-19 10:12:05 -07:00
Guy Scharf
ee0520b28e Update Version to 1.3.0 2021-10-15 17:47:58 -07:00
Guy Scharf
7fc05209cf Update Release Notes and VERSION to 1.3.0-rc.1 2021-10-09 09:59:39 -07:00
Phil Olynyk
3c571e6b88 Fix weird Y2K feature of QTime - Thanks to Kappa 2021-10-09 11:47:45 -04:00
Phil Olynyk
5cb93b011c Fix mode names for BiLevel modes. Update release notes 2021-10-07 19:32:19 -04:00
Guy Scharf
4b1a039acb Fix minor error on Welcome page 2021-10-07 21:58:54 +00:00