mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-08 04:00:44 +00:00
ResMed EPR setting fix, SummaryOnly calculation fixes
This commit is contained in:
parent
686588663a
commit
c549a90bf5
@ -684,12 +684,13 @@ void ResmedImport::run()
|
||||
if (R.mode >= 0) sess->settings[CPAP_Mode] = R.mode;
|
||||
|
||||
if (R.epr >= 0) {
|
||||
sess->settings[RMS9_EPR] = R.epr;
|
||||
sess->settings[RMS9_EPR] = (int)R.epr;
|
||||
sess->settings[CPAP_PresReliefType] = (int)PR_EPR;
|
||||
sess->settings[CPAP_PresReliefSet] = (int)R.epr;
|
||||
}
|
||||
if (R.epr_set >= 0) {
|
||||
sess->settings[RMS9_EPRSet] = R.epr_set;
|
||||
sess->settings[CPAP_PresReliefSet] = R.epr_set;
|
||||
sess->settings[RMS9_EPRSet] = (int)R.epr_set;
|
||||
sess->settings[CPAP_PresReliefMode] = (int)R.epr_set;
|
||||
}
|
||||
|
||||
// Ignore all the rest of the sumary data, because there is enough available to calculate it with higher accuracy.
|
||||
@ -804,12 +805,13 @@ void ResmedImportStage2::run()
|
||||
if (R.min_ipap >= 0) sess->settings[CPAP_IPAPLo] = R.min_ipap;
|
||||
if (R.mode >= 0) sess->settings[CPAP_Mode] = R.mode;
|
||||
if (R.epr >= 0) {
|
||||
sess->settings[RMS9_EPR] = R.epr;
|
||||
sess->settings[RMS9_EPR] = (int)R.epr;
|
||||
sess->settings[CPAP_PresReliefType] = (int)PR_EPR;
|
||||
sess->settings[CPAP_PresReliefSet] = (int)R.epr;
|
||||
}
|
||||
if (R.epr_set >= 0) {
|
||||
sess->settings[RMS9_EPRSet] = R.epr_set;
|
||||
sess->settings[CPAP_PresReliefSet] = R.epr_set;
|
||||
sess->settings[RMS9_EPRSet] = (int)R.epr_set;
|
||||
sess->settings[CPAP_PresReliefMode] = (int)R.epr_set;
|
||||
}
|
||||
if (R.leakmax >= 0) sess->setMax(CPAP_Leak, R.leakmax);
|
||||
if (R.leakmax >= 0) sess->setMin(CPAP_Leak, 0);
|
||||
|
@ -975,8 +975,10 @@ EventDataType Profile::calcAvg(ChannelID code, MachineType mt, QDate start, QDat
|
||||
Day *day = GetGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
val += day->sum(code);
|
||||
cnt++;
|
||||
if (!day->summaryOnly() || day->hasData(code, ST_AVG)) {
|
||||
val += day->sum(code);
|
||||
cnt++;
|
||||
}
|
||||
}
|
||||
|
||||
date = date.addDays(1);
|
||||
@ -1011,10 +1013,12 @@ EventDataType Profile::calcWavg(ChannelID code, MachineType mt, QDate start, QDa
|
||||
Day *day = GetGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
tmph = day->hours();
|
||||
tmp = day->wavg(code);
|
||||
val += tmp * tmph;
|
||||
hours += tmph;
|
||||
if (!day->summaryOnly() || day->hasData(code, ST_WAVG)) {
|
||||
tmph = day->hours();
|
||||
tmp = day->wavg(code);
|
||||
val += tmp * tmph;
|
||||
hours += tmph;
|
||||
}
|
||||
}
|
||||
|
||||
date = date.addDays(1);
|
||||
@ -1051,11 +1055,14 @@ EventDataType Profile::calcMin(ChannelID code, MachineType mt, QDate start, QDat
|
||||
Day *day = GetGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
tmp = day->Min(code);
|
||||
if (!day->summaryOnly() || day->hasData(code, ST_MIN)) {
|
||||
tmp = day->Min(code);
|
||||
|
||||
if (min > tmp) {
|
||||
min = tmp;
|
||||
if (min > tmp) {
|
||||
min = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
date = date.addDays(1);
|
||||
@ -1085,10 +1092,12 @@ EventDataType Profile::calcMax(ChannelID code, MachineType mt, QDate start, QDat
|
||||
Day *day = GetGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
tmp = day->Max(code);
|
||||
if (!day->summaryOnly() || day->hasData(code, ST_MAX)) {
|
||||
tmp = day->Max(code);
|
||||
|
||||
if (max < tmp) {
|
||||
max = tmp;
|
||||
if (max < tmp) {
|
||||
max = tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1215,11 +1224,16 @@ EventDataType Profile::calcPercentile(ChannelID code, EventDataType percent, Mac
|
||||
|
||||
qint64 SN = 0;
|
||||
bool timeweight;
|
||||
bool summaryOnly = false;
|
||||
|
||||
do {
|
||||
Day *day = GetGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
if (day->summaryOnly()) {
|
||||
summaryOnly = true;
|
||||
break;
|
||||
}
|
||||
for (int i = 0; i < day->size(); i++) {
|
||||
for (QList<Session *>::iterator s = day->begin(); s != day->end(); s++) {
|
||||
if (!(*s)->enabled()) {
|
||||
@ -1277,6 +1291,12 @@ EventDataType Profile::calcPercentile(ChannelID code, EventDataType percent, Mac
|
||||
date = date.addDays(1);
|
||||
} while (date <= end);
|
||||
|
||||
|
||||
if (summaryOnly) {
|
||||
// abort percentile calculation, there is not enough data
|
||||
return 0;
|
||||
}
|
||||
|
||||
QVector<ValueCount> valcnt;
|
||||
|
||||
// Build sorted list of value/counts
|
||||
|
@ -954,7 +954,7 @@ QString Daily::getMachineSettings(Day * cpap) {
|
||||
html+="<tr><td colspan=5> </td></tr>";
|
||||
if (cpap->settingExists(CPAP_PresReliefType)) {
|
||||
int i=cpap->settings_max(CPAP_PresReliefType);
|
||||
int j=cpap->settings_max(CPAP_PresReliefSet);
|
||||
int j=cpap->settings_max(CPAP_PresReliefMode);
|
||||
QString flexstr=(i>1) ? schema::channel[CPAP_PresReliefType].option(i)+" x"+QString::number(j) : STR_TR_None;
|
||||
html+=QString("<tr><td><a class='info' href='#'>%1<span>%2</span></a></td><td colspan=4>%3</td></tr>")
|
||||
.arg(STR_TR_PrRelief)
|
||||
|
@ -764,7 +764,7 @@ QString Statistics::GenerateHTML()
|
||||
AHI.push_back(UsageData(date, ahi, hours));
|
||||
|
||||
prelief = (PRTypes)(int)round(day->settings_wavg(CPAP_PresReliefType));
|
||||
prelset = round(day->settings_wavg(CPAP_PresReliefSet));
|
||||
prelset = round(day->settings_max(CPAP_PresReliefSet));
|
||||
mode = (CPAPMode)(int)round(day->settings_wavg(CPAP_Mode));
|
||||
mach = day->machine;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user