mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-06 19:20:45 +00:00
Overview linechart preference, ResMed pressure fixes (Needs Reimport)
This commit is contained in:
parent
e3cecdbe4c
commit
ce48401f08
@ -777,15 +777,8 @@ void gToolTip::paint() //actually paints it.
|
|||||||
{
|
{
|
||||||
if (!m_visible) return;
|
if (!m_visible) return;
|
||||||
|
|
||||||
#ifdef Q_OS_MAC
|
int x=m_pos.x();
|
||||||
// Using this solves the wavy text bug, but is a fraction slower
|
int y=m_pos.y();
|
||||||
bool usepixmap=m_graphview->usePixmapCache();
|
|
||||||
#else
|
|
||||||
// Slower on Linux in this case..
|
|
||||||
bool usepixmap=false;
|
|
||||||
#endif
|
|
||||||
int x=m_pos.x();// - tw / 2;
|
|
||||||
int y=m_pos.y();// - th;
|
|
||||||
|
|
||||||
QPainter painter(m_graphview);
|
QPainter painter(m_graphview);
|
||||||
|
|
||||||
@ -804,7 +797,7 @@ void gToolTip::paint() //actually paints it.
|
|||||||
|
|
||||||
int z=rect.x()+rect.width();
|
int z=rect.x()+rect.width();
|
||||||
if (z>m_graphview->width()-10) {
|
if (z>m_graphview->width()-10) {
|
||||||
rect.setLeft(m_graphview->width()-2-rect.width());//m_pos.x()-m_spacer);
|
rect.setLeft(m_graphview->width()-2-rect.width());
|
||||||
rect.setRight(m_graphview->width()-2);
|
rect.setRight(m_graphview->width()-2);
|
||||||
}
|
}
|
||||||
int h=rect.height();
|
int h=rect.height();
|
||||||
|
@ -21,13 +21,8 @@ SummaryChart::SummaryChart(QString label,GraphType type)
|
|||||||
addVertexBuffer(points=new gVertexBuffer(20000,GL_POINTS));
|
addVertexBuffer(points=new gVertexBuffer(20000,GL_POINTS));
|
||||||
quads->forceAntiAlias(true);
|
quads->forceAntiAlias(true);
|
||||||
|
|
||||||
points->setSize(10);
|
|
||||||
if (m_graphtype==GT_POINTS) {
|
|
||||||
lines->setSize(4);
|
|
||||||
} else
|
|
||||||
lines->setSize(1.5);
|
|
||||||
|
|
||||||
outlines->setSize(1);
|
outlines->setSize(1);
|
||||||
|
|
||||||
//lines->setBlendFunc(GL_SRC_COLOR, GL_ZERO);
|
//lines->setBlendFunc(GL_SRC_COLOR, GL_ZERO);
|
||||||
//lines->forceAntiAlias(false);
|
//lines->forceAntiAlias(false);
|
||||||
|
|
||||||
@ -298,6 +293,22 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
{
|
{
|
||||||
if (!m_visible) return;
|
if (!m_visible) return;
|
||||||
|
|
||||||
|
points->setSize(10);
|
||||||
|
|
||||||
|
|
||||||
|
GraphType graphtype=m_graphtype;
|
||||||
|
|
||||||
|
if (graphtype==GT_LINE || graphtype==GT_POINTS) {
|
||||||
|
bool pts=PROFILE.appearance->overviewLinechartMode()==OLC_Lines;
|
||||||
|
graphtype=pts ? GT_POINTS : GT_LINE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (graphtype==GT_POINTS) {
|
||||||
|
lines->setSize(4);
|
||||||
|
} else
|
||||||
|
lines->setSize(1.5);
|
||||||
|
|
||||||
|
|
||||||
rtop=top;
|
rtop=top;
|
||||||
gVertexBuffer *outlines2=w.lines();
|
gVertexBuffer *outlines2=w.lines();
|
||||||
// outlines2->setColor(Qt::black);
|
// outlines2->setColor(Qt::black);
|
||||||
@ -441,11 +452,14 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
if (zd==hl_day) {
|
if (zd==hl_day) {
|
||||||
QColor col=QColor("red");
|
QColor col=QColor("red");
|
||||||
col.setAlpha(64);
|
col.setAlpha(64);
|
||||||
if (m_graphtype!=GT_POINTS)
|
if (graphtype!=GT_POINTS) {
|
||||||
quads->add(x1-1,top,x1-1,top+height,x2,top+height,x2,top,col.rgba());
|
quads->add(x1-1,top,x1-1,top+height,x2,top+height,x2,top,col.rgba());
|
||||||
|
} else {
|
||||||
|
quads->add((x1+barw/2)-5,top,(x1+barw/2)-5,top+height,(x2-barw/2)+5,top+height,(x2-barw/2)+5,top,col.rgba());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_graphtype==GT_SESSIONS) {
|
if (graphtype==GT_SESSIONS) {
|
||||||
int j;
|
int j;
|
||||||
QHash<int,QHash<short,EventDataType> >::iterator times=m_times.find(zd);
|
QHash<int,QHash<short,EventDataType> >::iterator times=m_times.find(zd);
|
||||||
QColor col=m_colors[0];
|
QColor col=m_colors[0];
|
||||||
@ -544,7 +558,7 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
tmp-=miny;
|
tmp-=miny;
|
||||||
h=tmp*ymult; // height in pixels
|
h=tmp*ymult; // height in pixels
|
||||||
|
|
||||||
if (m_graphtype==GT_BAR) {
|
if (graphtype==GT_BAR) {
|
||||||
GLuint col1=col.rgba();
|
GLuint col1=col.rgba();
|
||||||
GLuint col2=brighten(col).rgba();
|
GLuint col2=brighten(col).rgba();
|
||||||
|
|
||||||
@ -556,7 +570,7 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
if (outlines->full()) qDebug() << "WTF??? Outlines full in SummaryChart::paint()";
|
if (outlines->full()) qDebug() << "WTF??? Outlines full in SummaryChart::paint()";
|
||||||
} // if (bar
|
} // if (bar
|
||||||
py-=h;
|
py-=h;
|
||||||
} else if (m_graphtype==GT_LINE) { // if (m_graphtype==GT_BAR
|
} else if (graphtype==GT_LINE) { // if (m_graphtype==GT_BAR
|
||||||
GLuint col1=col.rgba();
|
GLuint col1=col.rgba();
|
||||||
GLuint col2=m_colors[j].rgba();
|
GLuint col2=m_colors[j].rgba();
|
||||||
px2=px+barw;
|
px2=px+barw;
|
||||||
@ -576,7 +590,7 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
}
|
}
|
||||||
lastX[j]=px2;
|
lastX[j]=px2;
|
||||||
lastY[j]=py2;
|
lastY[j]=py2;
|
||||||
} else if (m_graphtype==GT_POINTS) {
|
} else if (graphtype==GT_POINTS) {
|
||||||
GLuint col1=col.rgba();
|
GLuint col1=col.rgba();
|
||||||
GLuint col2=m_colors[j].rgba();
|
GLuint col2=m_colors[j].rgba();
|
||||||
px2=px+barw;
|
px2=px+barw;
|
||||||
@ -588,13 +602,13 @@ void SummaryChart::paint(gGraph & w,int left, int top, int width, int height)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (zd==hl_day) {
|
if (zd==hl_day) {
|
||||||
points->add(px2-barw/2,py2,QColor("red").rgba());
|
points->add(px2-barw/2,py2,col2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lastdaygood) {
|
if (lastdaygood) {
|
||||||
lines->add(lastX[j]-barw/2,lastY[j],px2-barw/2,py2,col2);
|
lines->add(lastX[j]-barw/2,lastY[j],px2-barw/2,py2,col2);
|
||||||
} else {
|
} else {
|
||||||
// lines->add(x1-1,py2,x2+1,py2,col1);
|
lines->add(px+barw/2-1,py2,px+barw/2+1,py2,col1);
|
||||||
}
|
}
|
||||||
lastX[j]=px2;
|
lastX[j]=px2;
|
||||||
lastY[j]=py2;
|
lastY[j]=py2;
|
||||||
|
@ -127,6 +127,8 @@ QString STR_TR_CPAP; // Constant Positive Airway Pressure
|
|||||||
QString STR_TR_BIPAP; // Bi-Level Positive Airway Pressure
|
QString STR_TR_BIPAP; // Bi-Level Positive Airway Pressure
|
||||||
QString STR_TR_BiLevel; // Another name for BiPAP
|
QString STR_TR_BiLevel; // Another name for BiPAP
|
||||||
QString STR_TR_EPAP; // Expiratory Positive Airway Pressure
|
QString STR_TR_EPAP; // Expiratory Positive Airway Pressure
|
||||||
|
QString STR_TR_EPAPLo; // Expiratory Positive Airway Pressure, Low
|
||||||
|
QString STR_TR_EPAPHi; // Expiratory Positive Airway Pressure, High
|
||||||
QString STR_TR_IPAP; // Inspiratory Positive Airway Pressure
|
QString STR_TR_IPAP; // Inspiratory Positive Airway Pressure
|
||||||
QString STR_TR_IPAPLo; // Inspiratory Positive Airway Pressure, Low
|
QString STR_TR_IPAPLo; // Inspiratory Positive Airway Pressure, Low
|
||||||
QString STR_TR_IPAPHi; // Inspiratory Positive Airway Pressure, High
|
QString STR_TR_IPAPHi; // Inspiratory Positive Airway Pressure, High
|
||||||
@ -278,9 +280,11 @@ void initializeStrings()
|
|||||||
STR_TR_BIPAP=QObject::tr("BiPAP"); // Bi-Level Positive Airway Pressure
|
STR_TR_BIPAP=QObject::tr("BiPAP"); // Bi-Level Positive Airway Pressure
|
||||||
STR_TR_BiLevel=QObject::tr("Bi-Level"); // Another name for BiPAP
|
STR_TR_BiLevel=QObject::tr("Bi-Level"); // Another name for BiPAP
|
||||||
STR_TR_EPAP=QObject::tr("EPAP"); // Expiratory Positive Airway Pressure
|
STR_TR_EPAP=QObject::tr("EPAP"); // Expiratory Positive Airway Pressure
|
||||||
|
STR_TR_EPAPLo=QObject::tr("Min EPAP"); // Lower Expiratory Positive Airway Pressure
|
||||||
|
STR_TR_EPAPHi=QObject::tr("Max EPAP"); // Higher Expiratory Positive Airway Pressure
|
||||||
STR_TR_IPAP=QObject::tr("IPAP"); // Inspiratory Positive Airway Pressure
|
STR_TR_IPAP=QObject::tr("IPAP"); // Inspiratory Positive Airway Pressure
|
||||||
STR_TR_IPAPLo=QObject::tr("IPAPLo"); // Inspiratory Positive Airway Pressure, Low
|
STR_TR_IPAPLo=QObject::tr("Min IPAP"); // Lower Inspiratory Positive Airway Pressure
|
||||||
STR_TR_IPAPHi=QObject::tr("IPAPHi"); // Inspiratory Positive Airway Pressure, High
|
STR_TR_IPAPHi=QObject::tr("Max IPAP"); // Higher Inspiratory Positive Airway Pressure
|
||||||
STR_TR_APAP=QObject::tr("APAP"); // Automatic Positive Airway Pressure
|
STR_TR_APAP=QObject::tr("APAP"); // Automatic Positive Airway Pressure
|
||||||
STR_TR_ASV=QObject::tr("ASV"); // Assisted Servo Ventilator
|
STR_TR_ASV=QObject::tr("ASV"); // Assisted Servo Ventilator
|
||||||
STR_TR_STASV=QObject::tr("ST/ASV");
|
STR_TR_STASV=QObject::tr("ST/ASV");
|
||||||
|
@ -134,6 +134,8 @@ extern QString STR_TR_CPAP; // Constant Positive Airway Pressure
|
|||||||
extern QString STR_TR_BIPAP; // Bi-Level Positive Airway Pressure
|
extern QString STR_TR_BIPAP; // Bi-Level Positive Airway Pressure
|
||||||
extern QString STR_TR_BiLevel; // Another name for BiPAP
|
extern QString STR_TR_BiLevel; // Another name for BiPAP
|
||||||
extern QString STR_TR_EPAP; // Expiratory Positive Airway Pressure
|
extern QString STR_TR_EPAP; // Expiratory Positive Airway Pressure
|
||||||
|
extern QString STR_TR_EPAPLo; // Expiratory Positive Airway Pressure, Low
|
||||||
|
extern QString STR_TR_EPAPHi; // Expiratory Positive Airway Pressure, High
|
||||||
extern QString STR_TR_IPAP; // Inspiratory Positive Airway Pressure
|
extern QString STR_TR_IPAP; // Inspiratory Positive Airway Pressure
|
||||||
extern QString STR_TR_IPAPLo; // Inspiratory Positive Airway Pressure, Low
|
extern QString STR_TR_IPAPLo; // Inspiratory Positive Airway Pressure, Low
|
||||||
extern QString STR_TR_IPAPHi; // Inspiratory Positive Airway Pressure, High
|
extern QString STR_TR_IPAPHi; // Inspiratory Positive Airway Pressure, High
|
||||||
|
@ -414,6 +414,7 @@ int ResmedLoader::Open(QString & path,Profile *profile)
|
|||||||
int j=i.value().toInt(&ok);
|
int j=i.value().toInt(&ok);
|
||||||
if (ok)
|
if (ok)
|
||||||
m->properties[STR_PROP_Model]=RMS9ModelMap[j];
|
m->properties[STR_PROP_Model]=RMS9ModelMap[j];
|
||||||
|
m->properties[STR_PROP_ModelNumber]=i.value();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1244,12 +1245,12 @@ int ResmedLoader::Open(QString & path,Profile *profile)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
sess->settings[CPAP_PresReliefType]=PR_EPR;
|
|
||||||
|
|
||||||
// Ramp, Fulltime
|
// Ramp, Fulltime
|
||||||
// AutoSV machines don't have both fields
|
// AutoSV machines don't have both fields
|
||||||
sig=stredf.lookupSignal(RMS9_EPR);
|
sig=stredf.lookupSignal(RMS9_EPR);
|
||||||
if (sig) {
|
if (sig) {
|
||||||
|
sess->settings[CPAP_PresReliefType]=PR_EPR;
|
||||||
prmode=EventDataType(sig->data[dn])*sig->gain;
|
prmode=EventDataType(sig->data[dn])*sig->gain;
|
||||||
// Off,
|
// Off,
|
||||||
if (prmode<0) {
|
if (prmode<0) {
|
||||||
@ -1284,42 +1285,66 @@ int ResmedLoader::Open(QString & path,Profile *profile)
|
|||||||
}
|
}
|
||||||
} else if (mode>5) {
|
} else if (mode>5) {
|
||||||
if (mode>=7)
|
if (mode>=7)
|
||||||
sess->settings[CPAP_Mode]=MODE_ASV;
|
sess->settings[CPAP_Mode]=MODE_ASV; // interestingly, last digit of model number matches these when in full mode.
|
||||||
else
|
else
|
||||||
sess->settings[CPAP_Mode]=MODE_BIPAP;
|
sess->settings[CPAP_Mode]=MODE_BIPAP;
|
||||||
|
|
||||||
EventDataType tmp,epap=0,ipap=0;
|
EventDataType tmp,epap=0,ipap=0;
|
||||||
|
|
||||||
|
|
||||||
|
// All S9 machines have Set Pressure
|
||||||
|
// Elite has Min Pressure and Max Pressure
|
||||||
|
// VPAP Auto has EPAP, Min EPAP, IPAP and Max IPAP, and PS
|
||||||
|
// VPAP Adapt 36007 has just EPAP and PSLo/Hi,
|
||||||
|
// VPAP Adapt 36037 has EPAPLo, EPAPHi and PSLo/Hi
|
||||||
|
|
||||||
|
|
||||||
|
if (stredf.lookup.contains("EPAP")) {
|
||||||
|
sig=stredf.lookup["EPAP"];
|
||||||
|
epap=sig->data[dn]*sig->gain;
|
||||||
|
sess->settings[CPAP_EPAP]=epap;
|
||||||
|
}
|
||||||
|
if (stredf.lookup.contains("IPAP")) {
|
||||||
|
sig=stredf.lookup["IPAP"];
|
||||||
|
ipap=sig->data[dn]*sig->gain;
|
||||||
|
sess->settings[CPAP_IPAP]=ipap;
|
||||||
|
}
|
||||||
|
|
||||||
if (stredf.lookup.contains("Min EPAP")) {
|
if (stredf.lookup.contains("Min EPAP")) {
|
||||||
sig=stredf.lookup["Min EPAP"];
|
sig=stredf.lookup["Min EPAP"];
|
||||||
epap=sig->data[dn]*sig->gain;
|
epap=sig->data[dn]*sig->gain;
|
||||||
sess->settings[CPAP_EPAP]=epap;
|
sess->settings[CPAP_EPAPLo]=epap;
|
||||||
|
}
|
||||||
|
if (stredf.lookup.contains("Max EPAP")) {
|
||||||
|
sig=stredf.lookup["Max EPAP"];
|
||||||
|
epap=sig->data[dn]*sig->gain;
|
||||||
|
sess->settings[CPAP_EPAPHi]=epap;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stredf.lookup.contains("Min IPAP")) {
|
||||||
|
sig=stredf.lookup["Min IPAP"];
|
||||||
|
ipap=sig->data[dn]*sig->gain;
|
||||||
|
sess->settings[CPAP_IPAPLo]=ipap;
|
||||||
}
|
}
|
||||||
if (stredf.lookup.contains("Max IPAP")) {
|
if (stredf.lookup.contains("Max IPAP")) {
|
||||||
sig=stredf.lookup["Max IPAP"];
|
sig=stredf.lookup["Max IPAP"];
|
||||||
ipap=sig->data[dn]*sig->gain;
|
ipap=sig->data[dn]*sig->gain;
|
||||||
sess->settings[CPAP_IPAP]=ipap;
|
sess->settings[CPAP_IPAPHi]=ipap;
|
||||||
}
|
}
|
||||||
if (stredf.lookup.contains("PS")) {
|
if (stredf.lookup.contains("PS")) {
|
||||||
sig=stredf.lookup["PS"];
|
sig=stredf.lookup["PS"];
|
||||||
tmp=sig->data[dn]*sig->gain;
|
tmp=sig->data[dn]*sig->gain;
|
||||||
sess->settings[CPAP_PS]=tmp; // technically this is IPAP-EPAP
|
sess->settings[CPAP_PS]=tmp; // plain VPAP Pressure support
|
||||||
if (!ipap) {
|
|
||||||
// not really possible. but anyway, just in case..
|
|
||||||
sess->settings[CPAP_IPAP]=epap+tmp;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (stredf.lookup.contains("Min PS")) {
|
if (stredf.lookup.contains("Min PS")) {
|
||||||
sig=stredf.lookup["Min PS"];
|
sig=stredf.lookup["Min PS"];
|
||||||
tmp=sig->data[dn]*sig->gain;
|
tmp=sig->data[dn]*sig->gain;
|
||||||
sess->settings[CPAP_PSMin]=tmp;
|
sess->settings[CPAP_PSMin]=tmp;
|
||||||
sess->settings[CPAP_IPAPLo]=epap+tmp;
|
|
||||||
sess->setMin(CPAP_IPAP,epap+tmp);
|
|
||||||
}
|
}
|
||||||
if (stredf.lookup.contains("Max PS")) {
|
if (stredf.lookup.contains("Max PS")) {
|
||||||
sig=stredf.lookup["Max PS"];
|
sig=stredf.lookup["Max PS"];
|
||||||
tmp=sig->data[dn]*sig->gain;
|
tmp=sig->data[dn]*sig->gain;
|
||||||
sess->settings[CPAP_PSMax]=tmp;
|
sess->settings[CPAP_PSMax]=tmp;
|
||||||
sess->settings[CPAP_IPAPHi]=epap+tmp;
|
|
||||||
}
|
}
|
||||||
if (stredf.lookup.contains("RR")) { // Is this a setting to force respiratory rate on S/T machines?
|
if (stredf.lookup.contains("RR")) { // Is this a setting to force respiratory rate on S/T machines?
|
||||||
sig=stredf.lookup["RR"];
|
sig=stredf.lookup["RR"];
|
||||||
@ -1327,6 +1352,7 @@ int ResmedLoader::Open(QString & path,Profile *profile)
|
|||||||
sess->settings[CPAP_RespRate]=tmp*sig->gain;
|
sess->settings[CPAP_RespRate]=tmp*sig->gain;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// this is not a setting on any machine I've played with, I think it's just an indication of the type of motor
|
||||||
if (stredf.lookup.contains("Easy-Breathe")) {
|
if (stredf.lookup.contains("Easy-Breathe")) {
|
||||||
sig=stredf.lookup["Easy-Breathe"];
|
sig=stredf.lookup["Easy-Breathe"];
|
||||||
tmp=sig->data[dn]*sig->gain;
|
tmp=sig->data[dn]*sig->gain;
|
||||||
@ -2208,8 +2234,10 @@ void ResInitModelMap()
|
|||||||
// VPAP Auto Series (+H5i +Climate Control)
|
// VPAP Auto Series (+H5i +Climate Control)
|
||||||
RMS9ModelMap[36006]=RMS9ModelMap[36016]=RMS9ModelMap[36026]=RMS9_STR_VPAP_Auto;
|
RMS9ModelMap[36006]=RMS9ModelMap[36016]=RMS9ModelMap[36026]=RMS9_STR_VPAP_Auto;
|
||||||
|
|
||||||
|
|
||||||
// VPAP Adapt Series (+H5i +Climate Control)
|
// VPAP Adapt Series (+H5i +Climate Control)
|
||||||
RMS9ModelMap[36007]=RMS9ModelMap[36017]=RMS9ModelMap[36027]=RMS9ModelMap[36367]=RMS9_STR_VPAP_Adapt;
|
// Trev's 36037 supports variable EPAP...
|
||||||
|
RMS9ModelMap[36037]=RMS9ModelMap[36007]=RMS9ModelMap[36017]=RMS9ModelMap[36027]=RMS9ModelMap[36367]=RMS9_STR_VPAP_Adapt;
|
||||||
|
|
||||||
// VPAP ST Series (+H5i +Climate Control)
|
// VPAP ST Series (+H5i +Climate Control)
|
||||||
RMS9ModelMap[36008]=RMS9ModelMap[36018]=RMS9ModelMap[36028]=RMS9ModelMap[36108]=
|
RMS9ModelMap[36008]=RMS9ModelMap[36018]=RMS9ModelMap[36028]=RMS9ModelMap[36108]=
|
||||||
|
@ -446,7 +446,7 @@ SleepStage::~SleepStage()
|
|||||||
|
|
||||||
|
|
||||||
ChannelID NoChannel, SESSION_ENABLED;
|
ChannelID NoChannel, SESSION_ENABLED;
|
||||||
ChannelID CPAP_IPAP, CPAP_IPAPLo, CPAP_IPAPHi, CPAP_EPAP, CPAP_Pressure, CPAP_PS, CPAP_Mode, CPAP_AHI,
|
ChannelID CPAP_IPAP, CPAP_IPAPLo, CPAP_IPAPHi, CPAP_EPAP, CPAP_EPAPLo, CPAP_EPAPHi, CPAP_Pressure, CPAP_PS, CPAP_Mode, CPAP_AHI,
|
||||||
CPAP_PressureMin, CPAP_PressureMax, CPAP_RampTime, CPAP_RampPressure, CPAP_Obstructive, CPAP_Hypopnea,
|
CPAP_PressureMin, CPAP_PressureMax, CPAP_RampTime, CPAP_RampPressure, CPAP_Obstructive, CPAP_Hypopnea,
|
||||||
CPAP_ClearAirway, CPAP_Apnea, CPAP_CSR, CPAP_LeakFlag, CPAP_ExP, CPAP_NRI, CPAP_VSnore, CPAP_VSnore2,
|
CPAP_ClearAirway, CPAP_Apnea, CPAP_CSR, CPAP_LeakFlag, CPAP_ExP, CPAP_NRI, CPAP_VSnore, CPAP_VSnore2,
|
||||||
CPAP_RERA, CPAP_PressurePulse, CPAP_FlowLimit, CPAP_FlowRate, CPAP_MaskPressure, CPAP_MaskPressureHi,
|
CPAP_RERA, CPAP_PressurePulse, CPAP_FlowLimit, CPAP_FlowRate, CPAP_MaskPressure, CPAP_MaskPressureHi,
|
||||||
|
@ -84,7 +84,7 @@ enum MCDataType
|
|||||||
|
|
||||||
|
|
||||||
extern ChannelID NoChannel,SESSION_ENABLED;
|
extern ChannelID NoChannel,SESSION_ENABLED;
|
||||||
extern ChannelID CPAP_IPAP, CPAP_IPAPLo, CPAP_IPAPHi, CPAP_EPAP, CPAP_Pressure, CPAP_PS, CPAP_Mode, CPAP_AHI,
|
extern ChannelID CPAP_IPAP, CPAP_IPAPLo, CPAP_IPAPHi, CPAP_EPAP, CPAP_EPAPLo, CPAP_EPAPHi, CPAP_Pressure, CPAP_PS, CPAP_Mode, CPAP_AHI,
|
||||||
CPAP_PressureMin, CPAP_PressureMax, CPAP_RampTime, CPAP_RampPressure, CPAP_Obstructive, CPAP_Hypopnea,
|
CPAP_PressureMin, CPAP_PressureMax, CPAP_RampTime, CPAP_RampPressure, CPAP_Obstructive, CPAP_Hypopnea,
|
||||||
CPAP_ClearAirway, CPAP_Apnea, CPAP_CSR, CPAP_LeakFlag, CPAP_ExP, CPAP_NRI, CPAP_VSnore, CPAP_VSnore2,
|
CPAP_ClearAirway, CPAP_Apnea, CPAP_CSR, CPAP_LeakFlag, CPAP_ExP, CPAP_NRI, CPAP_VSnore, CPAP_VSnore2,
|
||||||
CPAP_RERA, CPAP_PressurePulse, CPAP_FlowLimit, CPAP_FlowRate, CPAP_MaskPressure, CPAP_MaskPressureHi,
|
CPAP_RERA, CPAP_PressurePulse, CPAP_FlowLimit, CPAP_FlowRate, CPAP_MaskPressure, CPAP_MaskPressureHi,
|
||||||
|
@ -23,6 +23,7 @@ class Machine;
|
|||||||
enum Gender { GenderNotSpecified, Male, Female };
|
enum Gender { GenderNotSpecified, Male, Female };
|
||||||
enum MaskType { Mask_Unknown, Mask_NasalPillows, Mask_Hybrid, Mask_StandardNasal, Mask_FullFace };
|
enum MaskType { Mask_Unknown, Mask_NasalPillows, Mask_Hybrid, Mask_StandardNasal, Mask_FullFace };
|
||||||
enum OverlayDisplayType { ODT_Bars, ODT_TopAndBottom };
|
enum OverlayDisplayType { ODT_Bars, ODT_TopAndBottom };
|
||||||
|
enum OverviewLinechartModes { OLC_Bartop, OLC_Lines };
|
||||||
|
|
||||||
class DoctorInfo;
|
class DoctorInfo;
|
||||||
class UserInfo;
|
class UserInfo;
|
||||||
@ -226,6 +227,7 @@ const QString STR_AS_GraphSnapshots="EnableGraphSnapshots";
|
|||||||
const QString STR_AS_Animations="AnimationsAndTransitions";
|
const QString STR_AS_Animations="AnimationsAndTransitions";
|
||||||
const QString STR_AS_SquareWave="SquareWavePlots";
|
const QString STR_AS_SquareWave="SquareWavePlots";
|
||||||
const QString STR_AS_OverlayType="OverlayType";
|
const QString STR_AS_OverlayType="OverlayType";
|
||||||
|
const QString STR_AS_OverviewLinechartMode="OverviewLinechartMode";
|
||||||
const QString STR_AS_UsePixmapCaching="UsePixmapCaching";
|
const QString STR_AS_UsePixmapCaching="UsePixmapCaching";
|
||||||
const QString STR_AS_AllowYAxisScaling="AllowYAxisScaling";
|
const QString STR_AS_AllowYAxisScaling="AllowYAxisScaling";
|
||||||
const QString STR_AS_GraphTooltips="GraphTooltips";
|
const QString STR_AS_GraphTooltips="GraphTooltips";
|
||||||
@ -537,6 +539,7 @@ public:
|
|||||||
if (!m_profile->contains(STR_AS_GraphTooltips)) (*m_profile)[STR_AS_GraphTooltips]=true;
|
if (!m_profile->contains(STR_AS_GraphTooltips)) (*m_profile)[STR_AS_GraphTooltips]=true;
|
||||||
if (!m_profile->contains(STR_AS_UsePixmapCaching)) (*m_profile)[STR_AS_UsePixmapCaching]=true;
|
if (!m_profile->contains(STR_AS_UsePixmapCaching)) (*m_profile)[STR_AS_UsePixmapCaching]=true;
|
||||||
if (!m_profile->contains(STR_AS_OverlayType)) (*m_profile)[STR_AS_OverlayType]=ODT_Bars;
|
if (!m_profile->contains(STR_AS_OverlayType)) (*m_profile)[STR_AS_OverlayType]=ODT_Bars;
|
||||||
|
if (!m_profile->contains(STR_AS_OverviewLinechartMode)) (*m_profile)[STR_AS_OverviewLinechartMode]=OLC_Bartop;
|
||||||
}
|
}
|
||||||
~AppearanceSettings() {}
|
~AppearanceSettings() {}
|
||||||
|
|
||||||
@ -560,6 +563,9 @@ public:
|
|||||||
bool graphTooltips() { return (*m_profile)[STR_AS_GraphTooltips].toBool(); }
|
bool graphTooltips() { return (*m_profile)[STR_AS_GraphTooltips].toBool(); }
|
||||||
//! \brief Returns the type of overlay flags (which are displayed over the Flow Waveform)
|
//! \brief Returns the type of overlay flags (which are displayed over the Flow Waveform)
|
||||||
OverlayDisplayType overlayType() { return (OverlayDisplayType )(*m_profile)[STR_AS_OverlayType].toInt(); }
|
OverlayDisplayType overlayType() { return (OverlayDisplayType )(*m_profile)[STR_AS_OverlayType].toInt(); }
|
||||||
|
//! \brief Returns the display type of Overview pages linechart
|
||||||
|
OverviewLinechartModes overviewLinechartMode() { return (OverviewLinechartModes )(*m_profile)[STR_AS_OverviewLinechartMode].toInt(); }
|
||||||
|
|
||||||
|
|
||||||
//! \brief Set the normal (unscaled) height of a graph.
|
//! \brief Set the normal (unscaled) height of a graph.
|
||||||
void setGraphHeight(int height) { (*m_profile)[STR_AS_GraphHeight]=height; }
|
void setGraphHeight(int height) { (*m_profile)[STR_AS_GraphHeight]=height; }
|
||||||
@ -575,6 +581,8 @@ public:
|
|||||||
void setSquareWavePlots(bool sw) { (*m_profile)[STR_AS_SquareWave]=sw; }
|
void setSquareWavePlots(bool sw) { (*m_profile)[STR_AS_SquareWave]=sw; }
|
||||||
//! \brief Sets the type of overlay flags (which are displayed over the Flow Waveform)
|
//! \brief Sets the type of overlay flags (which are displayed over the Flow Waveform)
|
||||||
void setOverlayType(OverlayDisplayType od) { (*m_profile)[STR_AS_OverlayType]=(int)od; }
|
void setOverlayType(OverlayDisplayType od) { (*m_profile)[STR_AS_OverlayType]=(int)od; }
|
||||||
|
//! \brief Sets the type of overlay flags (which are displayed over the Flow Waveform)
|
||||||
|
void setOverviewLinechartMode(OverviewLinechartModes od) { (*m_profile)[STR_AS_OverviewLinechartMode]=(int)od; }
|
||||||
//! \brief Sets whether to allow double clicking on Y-Axis labels to change vertical scaling mode
|
//! \brief Sets whether to allow double clicking on Y-Axis labels to change vertical scaling mode
|
||||||
void setAllowYAxisScaling(bool b) { (*m_profile)[STR_AS_AllowYAxisScaling]=b; }
|
void setAllowYAxisScaling(bool b) { (*m_profile)[STR_AS_AllowYAxisScaling]=b; }
|
||||||
//! \brief Sets whether to allow double clicking on Y-Axis labels to change vertical scaling mode
|
//! \brief Sets whether to allow double clicking on Y-Axis labels to change vertical scaling mode
|
||||||
|
@ -90,6 +90,8 @@ void init()
|
|||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_IPAPLo = 0x1110, DATA, SESSION, "IPAPLo", STR_TR_IPAPLo, QObject::tr("Lower Inspiratory Pressure"), STR_TR_IPAPLo, STR_UNIT_CMH2O, DEFAULT, QColor("orange")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_IPAPLo = 0x1110, DATA, SESSION, "IPAPLo", STR_TR_IPAPLo, QObject::tr("Lower Inspiratory Pressure"), STR_TR_IPAPLo, STR_UNIT_CMH2O, DEFAULT, QColor("orange")));
|
||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_IPAPHi = 0x1111, DATA, SESSION, "IPAPHi", STR_TR_IPAPHi, QObject::tr("Higher Inspiratory Pressure"), STR_TR_IPAPHi, STR_UNIT_CMH2O, DEFAULT, QColor("orange")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_IPAPHi = 0x1111, DATA, SESSION, "IPAPHi", STR_TR_IPAPHi, QObject::tr("Higher Inspiratory Pressure"), STR_TR_IPAPHi, STR_UNIT_CMH2O, DEFAULT, QColor("orange")));
|
||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_EPAP = 0x110E, DATA, SESSION, "EPAP", STR_TR_EPAP, QObject::tr("Expiratory Pressure"), STR_TR_EPAP, STR_UNIT_CMH2O, DEFAULT, QColor("light blue")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_EPAP = 0x110E, DATA, SESSION, "EPAP", STR_TR_EPAP, QObject::tr("Expiratory Pressure"), STR_TR_EPAP, STR_UNIT_CMH2O, DEFAULT, QColor("light blue")));
|
||||||
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_EPAPLo = 0x111C, DATA, SESSION, "EPAPLo", STR_TR_EPAPLo, QObject::tr("Lower Expiratory Pressure"), STR_TR_EPAPLo, STR_UNIT_CMH2O, DEFAULT, QColor("light blue")));
|
||||||
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_EPAPHi = 0x111D, DATA, SESSION, "EPAPHi", STR_TR_EPAPHi, QObject::tr("Higher Expiratory Pressure"), STR_TR_EPAPHi, STR_UNIT_CMH2O, DEFAULT, QColor("aqua")));
|
||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_PS = 0x110F, DATA, SESSION, "PS", STR_TR_PS, QObject::tr("Pressure Support"), STR_TR_PS, STR_UNIT_CMH2O, DEFAULT, QColor("grey")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_PS = 0x110F, DATA, SESSION, "PS", STR_TR_PS, QObject::tr("Pressure Support"), STR_TR_PS, STR_UNIT_CMH2O, DEFAULT, QColor("grey")));
|
||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_PSMin = 0x111A, SETTING, SESSION, "PSMin", QObject::tr("PS Min") , QObject::tr("Pressure Support Minimum"), QObject::tr("PS Min"), STR_UNIT_CMH2O, DEFAULT, QColor("dark cyan")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_PSMin = 0x111A, SETTING, SESSION, "PSMin", QObject::tr("PS Min") , QObject::tr("Pressure Support Minimum"), QObject::tr("PS Min"), STR_UNIT_CMH2O, DEFAULT, QColor("dark cyan")));
|
||||||
schema::channel.add(GRP_CPAP,new Channel(CPAP_PSMax = 0x111B, SETTING, SESSION, "PSMax", QObject::tr("PS Max"), QObject::tr("Pressure Support Maximum"), QObject::tr("PS Max"), STR_UNIT_CMH2O, DEFAULT, QColor("dark magenta")));
|
schema::channel.add(GRP_CPAP,new Channel(CPAP_PSMax = 0x111B, SETTING, SESSION, "PSMax", QObject::tr("PS Max"), QObject::tr("Pressure Support Maximum"), QObject::tr("PS Max"), STR_UNIT_CMH2O, DEFAULT, QColor("dark magenta")));
|
||||||
|
@ -841,13 +841,15 @@ QString Daily::getMachineSettings(Day * cpap) {
|
|||||||
html="<table cellpadding=0 cellspacing=0 border=0 width=100%>";
|
html="<table cellpadding=0 cellspacing=0 border=0 width=100%>";
|
||||||
html+=QString("<tr><td colspan=5 align=center><b>%1</b></td></tr>").arg(tr("Machine Settings"));
|
html+=QString("<tr><td colspan=5 align=center><b>%1</b></td></tr>").arg(tr("Machine Settings"));
|
||||||
html+="<tr><td colspan=5> </td></tr>";
|
html+="<tr><td colspan=5> </td></tr>";
|
||||||
int i=cpap->settings_max(CPAP_PresReliefType);
|
if (cpap->settingExists(CPAP_PresReliefType)) {
|
||||||
int j=cpap->settings_max(CPAP_PresReliefSet);
|
int i=cpap->settings_max(CPAP_PresReliefType);
|
||||||
QString flexstr=(i>1) ? schema::channel[CPAP_PresReliefType].option(i)+" x"+QString::number(j) : STR_TR_None;
|
int j=cpap->settings_max(CPAP_PresReliefSet);
|
||||||
html+=QString("<tr><td><a class='info' href='#'>%1<span>%2</span></a></td><td colspan=4>%3</td></tr>")
|
QString flexstr=(i>1) ? schema::channel[CPAP_PresReliefType].option(i)+" x"+QString::number(j) : STR_TR_None;
|
||||||
.arg(STR_TR_PrRelief)
|
html+=QString("<tr><td><a class='info' href='#'>%1<span>%2</span></a></td><td colspan=4>%3</td></tr>")
|
||||||
.arg(schema::channel[CPAP_PresReliefType].description())
|
.arg(STR_TR_PrRelief)
|
||||||
.arg(flexstr);
|
.arg(schema::channel[CPAP_PresReliefType].description())
|
||||||
|
.arg(flexstr);
|
||||||
|
}
|
||||||
QString mclass=cpap->machine->GetClass();
|
QString mclass=cpap->machine->GetClass();
|
||||||
if (mclass==STR_MACH_PRS1 || mclass==STR_MACH_FPIcon) {
|
if (mclass==STR_MACH_PRS1 || mclass==STR_MACH_FPIcon) {
|
||||||
int humid=round(cpap->settings_wavg(CPAP_HumidSetting));
|
int humid=round(cpap->settings_wavg(CPAP_HumidSetting));
|
||||||
@ -900,40 +902,76 @@ QString Daily::getCPAPInformation(Day * cpap)
|
|||||||
html+=tooltip;
|
html+=tooltip;
|
||||||
html+="</span></td></tr>\n";
|
html+="</span></td></tr>\n";
|
||||||
CPAPMode mode=(CPAPMode)(int)cpap->settings_max(CPAP_Mode);
|
CPAPMode mode=(CPAPMode)(int)cpap->settings_max(CPAP_Mode);
|
||||||
html+="<tr><td colspan=4 align=center>"+tr("PAP Setting")+": <b>";
|
html+="<tr><td colspan=4 align=center>";
|
||||||
|
|
||||||
|
|
||||||
|
QString modestr;
|
||||||
|
|
||||||
|
if (mode==MODE_CPAP) modestr=STR_TR_CPAP;
|
||||||
|
else if (mode==MODE_APAP) modestr=STR_TR_APAP;
|
||||||
|
else if (mode==MODE_BIPAP) modestr=STR_TR_BiLevel;
|
||||||
|
else if (mode==MODE_ASV) modestr=STR_TR_ASV;
|
||||||
|
else modestr=STR_TR_Unknown;
|
||||||
|
html+=tr("PAP Mode: %1<br/>").arg(modestr);
|
||||||
|
|
||||||
if (mode==MODE_CPAP) {
|
if (mode==MODE_CPAP) {
|
||||||
EventDataType min=round(cpap->settings_wavg(CPAP_Pressure)*2)/2.0;
|
EventDataType min=round(cpap->settings_wavg(CPAP_Pressure)*2)/2.0;
|
||||||
html+=STR_TR_CPAP+" "+QString::number(min)+STR_UNIT_CMH2O;
|
// eg: Pressure: 13cmH2O
|
||||||
|
html+=QString("%1: %2%3").arg(STR_TR_Pressure).arg(min).arg(STR_UNIT_CMH2O);
|
||||||
} else if (mode==MODE_APAP) {
|
} else if (mode==MODE_APAP) {
|
||||||
EventDataType min=cpap->settings_min(CPAP_PressureMin);
|
EventDataType min=cpap->settings_min(CPAP_PressureMin);
|
||||||
EventDataType max=cpap->settings_max(CPAP_PressureMax);
|
EventDataType max=cpap->settings_max(CPAP_PressureMax);
|
||||||
html+=STR_TR_APAP+" "+QString::number(min)+"-"+QString::number(max)+STR_UNIT_CMH2O;
|
// eg: Pressure: 7.0-10.0cmH2O
|
||||||
} else if (mode==MODE_BIPAP) {
|
html+=QString("%1: %2-%3%4").arg(STR_TR_Pressure).arg(min,0,'f',1).arg(max,0,'f',1).arg(STR_UNIT_CMH2O);
|
||||||
EventDataType epap=cpap->settings_min(CPAP_EPAP);
|
} else if (mode>=MODE_BIPAP) {
|
||||||
EventDataType ipap=cpap->settings_max(CPAP_IPAP);
|
if (cpap->settingExists(CPAP_EPAPLo)) {
|
||||||
EventDataType ps=cpap->settings_max(CPAP_PS);
|
html+=QString(STR_TR_EPAPLo+": %1")
|
||||||
html+=STR_TR_BiLevel+QString("<br/>"+STR_TR_EPAP+": %1 "+STR_TR_IPAP+": %2 %3<br/> "+STR_TR_PS+": %4")
|
.arg(cpap->settings_min(CPAP_EPAPLo),0,'f',1);
|
||||||
.arg(epap,0,'f',1).arg(ipap,0,'f',1).arg(STR_UNIT_CMH2O).arg(ps,0,'f',1);
|
|
||||||
}
|
if (cpap->settingExists(CPAP_EPAPHi)) {
|
||||||
else if (mode==MODE_ASV) {
|
html+=QString("-%2")
|
||||||
EventDataType epap=cpap->settings_min(CPAP_EPAP);
|
.arg(cpap->settings_max(CPAP_EPAPHi),0,'f',1);
|
||||||
EventDataType low=cpap->settings_min(CPAP_IPAPLo);
|
}
|
||||||
EventDataType high=cpap->settings_max(CPAP_IPAPHi);
|
html+=STR_UNIT_CMH2O+"</br>";
|
||||||
EventDataType psl=cpap->settings_min(CPAP_PSMin);
|
} else if (cpap->settingExists(CPAP_EPAP)) {
|
||||||
EventDataType psh=cpap->settings_max(CPAP_PSMax);
|
EventDataType epap=cpap->settings_min(CPAP_EPAP);
|
||||||
html+=tr("ASV")+QString("<br/>"+STR_TR_EPAP+": %1 "+STR_TR_IPAP+": %2 - %3 %4<br/> "+STR_TR_PS+": %5 / %6")
|
|
||||||
.arg(epap,0,'f',1)
|
html+=QString("%1: %2%3<br/>").arg(STR_TR_EPAP)
|
||||||
.arg(low,0,'f',1)
|
.arg(epap,0,'f',1)
|
||||||
.arg(high,0,'f',1)
|
.arg(STR_UNIT_CMH2O);
|
||||||
.arg(STR_UNIT_CMH2O)
|
|
||||||
|
if (!cpap->settingExists(CPAP_IPAPHi)) {
|
||||||
|
if (cpap->settingExists(CPAP_PSMax)) {
|
||||||
|
html+=QString("%1: %2%3<br/>").arg(STR_TR_IPAPHi)
|
||||||
|
.arg(epap+cpap->settings_max(CPAP_PSMax),0,'f',1)
|
||||||
|
.arg(STR_UNIT_CMH2O);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cpap->settingExists(CPAP_IPAPHi)) {
|
||||||
|
html+=QString(STR_TR_IPAPHi+": %1"+STR_UNIT_CMH2O+"<br/>")
|
||||||
|
.arg(cpap->settings_max(CPAP_IPAPHi),0,'f',1);
|
||||||
|
} else
|
||||||
|
if (cpap->settingExists(CPAP_IPAP)) {
|
||||||
|
html+=QString(STR_TR_IPAP+": %1"+STR_UNIT_CMH2O+"<br/>")
|
||||||
|
.arg(cpap->settings_max(CPAP_IPAP),0,'f',1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cpap->settingExists(CPAP_PS)) {
|
||||||
|
html+=QString(STR_TR_PS+": %1"+STR_UNIT_CMH2O+"<br/>")
|
||||||
|
.arg(cpap->settings_max(CPAP_PS),0,'f',1);
|
||||||
|
} else if (cpap->settingExists(CPAP_PSMin)) {
|
||||||
|
EventDataType psl=cpap->settings_min(CPAP_PSMin);
|
||||||
|
EventDataType psh=cpap->settings_max(CPAP_PSMax);
|
||||||
|
html+=QString(STR_TR_PS+": %1-%2"+STR_UNIT_CMH2O+"<br/>")
|
||||||
.arg(psl,0,'f',1)
|
.arg(psl,0,'f',1)
|
||||||
.arg(psh,0,'f',1);
|
.arg(psh,0,'f',1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else html+=STR_TR_Unknown;
|
html+="</td></tr>\n";
|
||||||
html+="</b></td></tr>\n";
|
|
||||||
html+="</table>\n";
|
html+="</table>\n";
|
||||||
// html+="<hr/>\n";
|
html+="<hr/>\n";
|
||||||
return html;
|
return html;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,8 +11,8 @@ Important: One id code per item, DO NOT CHANGE ID NUMBERS!!!
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<channel id="0x111c" class="data" name="TestChan1" details="Respiratory Rate" label="Mark's Resp. Rate" unit="breaths/min" color="black"/>
|
<channel id="0x111e" class="data" name="TestChan1" details="Respiratory Rate" label="Mark's Resp. Rate" unit="breaths/min" color="black"/>
|
||||||
<channel id="0x111d" class="data" name="TestChan2" details="Tidal Volume" label="Tidal Volume" unit="L/min" color="blue"/>
|
<channel id="0x111f" class="data" name="TestChan2" details="Tidal Volume" label="Tidal Volume" unit="L/min" color="blue"/>
|
||||||
|
|
||||||
<channel id="0x1150" class="data" name="PRS1_00" details="Unknown 00" label="U00" unit="?" color="black"/>
|
<channel id="0x1150" class="data" name="PRS1_00" details="Unknown 00" label="U00" unit="?" color="black"/>
|
||||||
<channel id="0x1151" class="data" name="PRS1_01" details="Unknown 01" label="U01" unit="?" color="black"/>
|
<channel id="0x1151" class="data" name="PRS1_01" details="Unknown 01" label="U01" unit="?" color="black"/>
|
||||||
|
@ -173,7 +173,7 @@ Overview::Overview(QWidget *parent,gGraphView * shared) :
|
|||||||
uc->addSlice(NoChannel, COLOR_Green, ST_HOURS);
|
uc->addSlice(NoChannel, COLOR_Green, ST_HOURS);
|
||||||
UC->AddLayer(uc);
|
UC->AddLayer(uc);
|
||||||
|
|
||||||
fl=new SummaryChart(STR_TR_FL,GT_BAR);
|
fl=new SummaryChart(STR_TR_FL,GT_POINTS);
|
||||||
fl->addSlice(CPAP_FlowLimit, COLOR_Brown, ST_CPH);
|
fl->addSlice(CPAP_FlowLimit, COLOR_Brown, ST_CPH);
|
||||||
FL->AddLayer(fl);
|
FL->AddLayer(fl);
|
||||||
|
|
||||||
|
@ -207,6 +207,7 @@ PreferencesDialog::PreferencesDialog(QWidget *parent,Profile * _profile) :
|
|||||||
|
|
||||||
|
|
||||||
ui->overlayFlagsCombo->setCurrentIndex(profile->appearance->overlayType());
|
ui->overlayFlagsCombo->setCurrentIndex(profile->appearance->overlayType());
|
||||||
|
ui->overviewLinecharts->setCurrentIndex(profile->appearance->overviewLinechartMode());
|
||||||
|
|
||||||
ui->oximetryGroupBox->setChecked(profile->oxi->oximetryEnabled());
|
ui->oximetryGroupBox->setChecked(profile->oxi->oximetryEnabled());
|
||||||
ui->oximetrySync->setChecked(profile->oxi->syncOximetry());
|
ui->oximetrySync->setChecked(profile->oxi->syncOximetry());
|
||||||
@ -393,6 +394,8 @@ bool PreferencesDialog::Save()
|
|||||||
profile->cpap->setClockDrift(ui->clockDrift->value());
|
profile->cpap->setClockDrift(ui->clockDrift->value());
|
||||||
|
|
||||||
profile->appearance->setOverlayType((OverlayDisplayType)ui->overlayFlagsCombo->currentIndex());
|
profile->appearance->setOverlayType((OverlayDisplayType)ui->overlayFlagsCombo->currentIndex());
|
||||||
|
profile->appearance->setOverviewLinechartMode((OverviewLinechartModes)ui->overviewLinecharts->currentIndex());
|
||||||
|
|
||||||
profile->cpap->setLeakMode(ui->leakModeCombo->currentIndex());
|
profile->cpap->setLeakMode(ui->leakModeCombo->currentIndex());
|
||||||
profile->cpap->setMaskType((MaskType)ui->maskTypeCombo->currentIndex());
|
profile->cpap->setMaskType((MaskType)ui->maskTypeCombo->currentIndex());
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>721</width>
|
<width>721</width>
|
||||||
<height>502</height>
|
<height>545</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -1922,148 +1922,44 @@ p, li { white-space: pre-wrap; }
|
|||||||
<string>Graph Settings</string>
|
<string>Graph Settings</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QGridLayout" name="gridLayout_5">
|
<layout class="QGridLayout" name="gridLayout_5">
|
||||||
<item row="0" column="0">
|
<item row="2" column="1" colspan="2">
|
||||||
<widget class="QLabel" name="label_18">
|
<widget class="QComboBox" name="overviewLinecharts">
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Overlay Flags</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1" colspan="2">
|
|
||||||
<widget class="QComboBox" name="overlayFlagsCombo">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>The visual method of displaying waveform overlay flags.
|
|
||||||
</string>
|
|
||||||
</property>
|
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Standard Bars</string>
|
<string>Bar Tops</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Top & Bottom Markers</string>
|
<string>Line Chart</string>
|
||||||
</property>
|
</property>
|
||||||
</item>
|
</item>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_26">
|
|
||||||
<property name="text">
|
|
||||||
<string>Graph Height</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QSpinBox" name="graphHeight">
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Default display height of graphs in pixels</string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>50</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>600</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>180</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="2">
|
|
||||||
<widget class="QCheckBox" name="graphTooltips">
|
|
||||||
<property name="text">
|
|
||||||
<string>Graph Tooltips</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_45">
|
<widget class="QLabel" name="label_47">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Tooltip Timeout</string>
|
<string>Overview Linecharts</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1" colspan="2">
|
<item row="6" column="1">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
<spacer name="verticalSpacer">
|
||||||
<item>
|
<property name="orientation">
|
||||||
<widget class="QSlider" name="tooltipTimeoutSlider">
|
<enum>Qt::Vertical</enum>
|
||||||
<property name="toolTip">
|
|
||||||
<string>How long you want the tooltips to stay visible.</string>
|
|
||||||
</property>
|
|
||||||
<property name="minimum">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>150</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
<property name="pageStep">
|
|
||||||
<number>50</number>
|
|
||||||
</property>
|
|
||||||
<property name="value">
|
|
||||||
<number>1</number>
|
|
||||||
</property>
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickPosition">
|
|
||||||
<enum>QSlider::TicksBelow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickInterval">
|
|
||||||
<number>10</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLCDNumber" name="tooltipMS">
|
|
||||||
<property name="frameShape">
|
|
||||||
<enum>QFrame::StyledPanel</enum>
|
|
||||||
</property>
|
|
||||||
<property name="digitCount">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="segmentStyle">
|
|
||||||
<enum>QLCDNumber::Flat</enum>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="0">
|
|
||||||
<widget class="QLabel" name="label_46">
|
|
||||||
<property name="text">
|
|
||||||
<string>Scroll Dampening</string>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1" colspan="2">
|
<item row="5" column="1" colspan="2">
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSlider" name="scrollDampeningSlider">
|
<widget class="QSlider" name="scrollDampeningSlider">
|
||||||
@ -2111,18 +2007,155 @@ p, li { white-space: pre-wrap; }
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="1">
|
<item row="4" column="1" colspan="2">
|
||||||
<spacer name="verticalSpacer">
|
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||||
<property name="orientation">
|
<item>
|
||||||
<enum>Qt::Vertical</enum>
|
<widget class="QSlider" name="tooltipTimeoutSlider">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>How long you want the tooltips to stay visible.</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>150</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<property name="pageStep">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>1</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickPosition">
|
||||||
|
<enum>QSlider::TicksBelow</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickInterval">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLCDNumber" name="tooltipMS">
|
||||||
|
<property name="frameShape">
|
||||||
|
<enum>QFrame::StyledPanel</enum>
|
||||||
|
</property>
|
||||||
|
<property name="digitCount">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="segmentStyle">
|
||||||
|
<enum>QLCDNumber::Flat</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="label_46">
|
||||||
|
<property name="text">
|
||||||
|
<string>Scroll Dampening</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="alignment">
|
||||||
<size>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="label_45">
|
||||||
|
<property name="text">
|
||||||
|
<string>Tooltip Timeout</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QSpinBox" name="graphHeight">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Default display height of graphs in pixels</string>
|
||||||
|
</property>
|
||||||
|
<property name="minimum">
|
||||||
|
<number>50</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>600</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>10</number>
|
||||||
|
</property>
|
||||||
|
<property name="value">
|
||||||
|
<number>180</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="2">
|
||||||
|
<widget class="QCheckBox" name="graphTooltips">
|
||||||
|
<property name="text">
|
||||||
|
<string>Graph Tooltips</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1" colspan="2">
|
||||||
|
<widget class="QComboBox" name="overlayFlagsCombo">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>The visual method of displaying waveform overlay flags.
|
||||||
|
</string>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Standard Bars</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Top & Bottom Markers</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="0">
|
||||||
|
<widget class="QLabel" name="label_26">
|
||||||
|
<property name="text">
|
||||||
|
<string>Graph Height</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_18">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Overlay Flags</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
Loading…
Reference in New Issue
Block a user