*CSR pinned on overview tab disappears on the first paint.
Cause
*Charts are automatically permanently disabled for charts that are initially empty
*This problem impacts any chart that is enabled in File => Preferences.
Details
*gGraph does not display layers (paint) when the layer is empty.
*gSummaryChart (layer) initializes empty to false and calculates empty during painting.
Causing empty charts to be permanently disabled.
*Once a chart has been displayed, it will always be displayed even if empty.
Solution
*Enabled painting charts when the DayRange is increased, triggering the empty flag to be recalculated
New non-empty charts will now be permanently displayed
*Overview maintains the largest DayRange used and list of empty charts.
*Overview receive these signals and calls recalculates when largest DayRange is increased.
*gSummaryChart implement recalculate method.
*gSummaryChart implement emit signal when empty flag changes.
*gGraphView implement emit signal when day range changes. (XBounds)
**** IMPORTANT MUST Rebuild makefiles.****
*Remove two Makefiles and execute qmake. (works for linux version).
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.
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.
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.
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.
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.
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,.
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.
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.
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!
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.
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.
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.)
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.
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.
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.
Minor improvement to mask pressure averaging used in unintentional leak calculations.
Fix Y2K calculation in unused code in sleepstle_EDFInfo.cpp
Update Release Notes
Loader calculates leak rate from mask pressure and does usual linear interpolation for leak rate for the pressure
Calculation of CPAP_Leak is now done in the loader rather than in calcs.cpp
Apparently the Android app is now exporting files with timestamps of the form
"YYYY-MM-DD hh:mm:ss". It turns out that ":" is not a valid character on
macOS, so Mac users using version 2.72 of the Android app will need to rename
their files to end with "YYYYMMDDhhmmss" in order to select and import them.
Windows and Linux won't.
Fortunately the intersection of Android users and Mac users is relatively small.
And this may be reverted in a future version of the Android app.
Also clean up some competing release notes edits.
No naturally occurring discrepancies have been observed in the wild,
but for some reason the timestamps generated by Viatom/Wellue devices
seem to be a bit off, even when their clocks have been synchronized
to atomic time.
This patch provides a fairly easy way for a user to adjust Viatom
timestamps to match their CPAP's.
Change option and messages for showing early releases.
Update Release Notes to correct an error re: zombie reports and include a section for beta 2+ fixes.
Use #define DEBUGSS to enable all loader debug messages, which are off by default
Change EPR definition to "Expiratory Relief" which is the term F&P uses instead of "Exhale Pressure Relief"