mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-09 12:40:43 +00:00
iBreeze trigger: added days to cpap usage section
This commit is contained in:
parent
2fc3d08366
commit
925a621f20
@ -1266,7 +1266,7 @@ int Profile::countCompliantDays(MachineType mt, QDate start, QDate end)
|
||||
Day *day = FindGoodDay(date, mt);
|
||||
|
||||
if (day) {
|
||||
if (day->hours(mt) > compliance) { days++; }
|
||||
if (day->hours(mt) >= compliance) { days++; } // compliant days includes the value specified.
|
||||
}
|
||||
|
||||
date = date.addDays(1);
|
||||
|
@ -645,8 +645,12 @@ Statistics::Statistics(QObject *parent) :
|
||||
rows.push_back(StatisticsRow("", SC_DAYS, MT_CPAP));
|
||||
rows.push_back(StatisticsRow("", SC_COLUMNHEADERS, MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("CPAP Usage"), SC_SUBHEADING, MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Days In Period"), SC_SELECTED_DAYS , MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Days Used"), SC_DAYS_W_DATA , MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Days Not Used"), SC_DAYS_WO_DATA , MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Days (%1 hrs/day)"), SC_COMPLIANCE_DAYS , MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Percent Days (%1 hrs/day)"), SC_COMPLIANCE, MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Average Hours per Night"), SC_HOURS, MT_CPAP));
|
||||
rows.push_back(StatisticsRow(tr("Compliance (%1 hrs/day)"), SC_COMPLIANCE, MT_CPAP));
|
||||
|
||||
rows.push_back(StatisticsRow(tr("Therapy Efficacy"), SC_SUBHEADING, MT_CPAP));
|
||||
rows.push_back(StatisticsRow("AHI", SC_AHI, MT_CPAP));
|
||||
@ -1360,6 +1364,14 @@ QString Statistics::GenerateCPAPUsage()
|
||||
}
|
||||
html += "</tr>";
|
||||
continue;
|
||||
} else if (row.calc == SC_DAYS_WO_DATA) {
|
||||
name = row.src;
|
||||
} else if (row.calc == SC_DAYS_W_DATA) {
|
||||
name = row.src;
|
||||
} else if (row.calc == SC_SELECTED_DAYS) {
|
||||
name = row.src;
|
||||
} else if (row.calc == SC_COMPLIANCE_DAYS) {
|
||||
name = QString(row.src).arg(p_profile->cpap->m_complianceHours);
|
||||
} else if (row.calc == SC_DAYS) {
|
||||
QDate first=p_profile->FirstGoodDay(row.type);
|
||||
QDate last=p_profile->LastGoodDay(row.type);
|
||||
@ -1417,7 +1429,8 @@ QString Statistics::GenerateCPAPUsage()
|
||||
// both create header column and 5 data columns for a total of 100
|
||||
int dataWidth = 14;
|
||||
int headerWidth = 30;
|
||||
if (p_profile->general->statReportMode() == STAT_MODE_MONTHLY) {
|
||||
if (p_profile->general->statReportMode() == STAT_MODE_MONTHLY)
|
||||
{
|
||||
// both create header column and 13 data columns for a total of 100
|
||||
dataWidth = 6;
|
||||
headerWidth = 22;
|
||||
@ -1549,7 +1562,7 @@ QString Statistics::UpdateRecordsBox()
|
||||
int totalDays = 1+first.daysTo(last);
|
||||
int daysUsed = p_profile->countDays(MT_CPAP, first, last);
|
||||
int daysSkipped = totalDays - daysUsed;
|
||||
int compliant = p_profile->countCompliantDays(MT_CPAP, first, last);
|
||||
int compliant = p_profile->countCompliantDays(MT_CPAP, first, last );
|
||||
int lowUsed = daysUsed - compliant;
|
||||
float comperc = (100.0 / float(totalDays)) * float(compliant);
|
||||
|
||||
@ -1842,11 +1855,21 @@ QString StatisticsRow::value(QDate start, QDate end)
|
||||
} else if (calc == SC_HOURS) {
|
||||
value = QString("%1").arg(formatTime(p_profile->calcHours(type, start, end) / days));
|
||||
} else if (calc == SC_COMPLIANCE) {
|
||||
float c = p_profile->countCompliantDays(type, start, end);
|
||||
float c = p_profile->countCompliantDays(type, start, end );
|
||||
// float p = (100.0 / days) * c;
|
||||
float realDays = qAbs(start.daysTo(end)) + 1;
|
||||
float p = (100.0 / realDays) * c;
|
||||
value = QString("%1%").arg(p, 0, 'f', 0);
|
||||
float p = (100.0 *c / realDays) ;
|
||||
value = QString("%1%").arg(p, 0, 'f', 2);
|
||||
} else if (calc == SC_DAYS_WO_DATA) {
|
||||
value = QString::number((1+start.daysTo(end)) - p_profile->countDays(type, start, end ));
|
||||
} else if (calc == SC_DAYS_W_DATA) {
|
||||
value = QString::number(p_profile->countDays(type, start, end));
|
||||
} else if (calc == SC_SELECTED_DAYS) {
|
||||
value = QString::number(1+start.daysTo(end));
|
||||
} else if (calc == SC_COMPLIANCE_DAYS) {
|
||||
int value1 = p_profile->countCompliantDays(type, start, end );
|
||||
value = QString("%1 ").arg(value1);
|
||||
//value += QString(" / %1").arg(double(100*value1)/double(1+start.daysTo(end)));
|
||||
} else if (calc == SC_DAYS) {
|
||||
value = QString("%1").arg(p_profile->countDays(type, start, end));
|
||||
} else if ((calc == SC_COLUMNHEADERS) || (calc == SC_SUBHEADING) || (calc == SC_UNDEFINED)) {
|
||||
|
@ -58,7 +58,7 @@ public:
|
||||
|
||||
//! \brief Type of calculation on one statistics row
|
||||
enum StatCalcType {
|
||||
SC_UNDEFINED=0, SC_COLUMNHEADERS, SC_HEADING, SC_SUBHEADING, SC_MEDIAN, SC_AVG, SC_WAVG, SC_90P, SC_MIN, SC_MAX, SC_CPH, SC_SPH, SC_AHI, SC_HOURS, SC_COMPLIANCE, SC_DAYS, SC_ABOVE, SC_BELOW , SC_WARNING , SC_WARNING2
|
||||
SC_UNDEFINED=0, SC_COLUMNHEADERS, SC_HEADING, SC_SUBHEADING, SC_MEDIAN, SC_AVG, SC_WAVG, SC_90P, SC_MIN, SC_MAX, SC_CPH, SC_SPH, SC_AHI, SC_HOURS, SC_COMPLIANCE, SC_DAYS, SC_ABOVE, SC_BELOW , SC_WARNING , SC_WARNING2 , SC_SELECTED_DAYS , SC_COMPLIANCE_DAYS , SC_DAYS_W_DATA , SC_DAYS_WO_DATA
|
||||
};
|
||||
|
||||
/*! \struct StatisticsRow
|
||||
|
Loading…
Reference in New Issue
Block a user