Minor Daily info panel cleanup

This commit is contained in:
Mark Watkins 2011-06-30 19:37:24 +10:00
parent 49224ee23d
commit 7b53ae0f23
6 changed files with 57 additions and 38 deletions

View File

@ -85,7 +85,7 @@ void gYAxis::Plot(gGraphWindow &w,float scrx,float scry)
}
}
for (double i=miny; i<=maxy; i+=min_ytick) {
for (double i=miny; i<=maxy+min_ytick-0.00001; i+=min_ytick) {
ty=(i - miny) * ymult;
fd=Format(i); // Override this as a function.
GetTextExtent(fd,x,y);

View File

@ -360,9 +360,9 @@ int PRS1Loader::OpenMachine(Machine *m,QString path,Profile *profile)
sess->summary[CPAP_LeakMedian]=sess->avg_event_field(CPAP_Leak,0);
sess->summary[CPAP_LeakAverage]=sess->weighted_avg_event_field(CPAP_Leak,0);
sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_SnoreGraph,0);
sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_SnoreGraph,0);
sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_SnoreGraph,0);
sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreAverage]=sess->weighted_avg_event_field(CPAP_Snore,0);
//Printf(sess->start().Format()+wxT(" avgsummary=%.3f avgmine=%.3f\n"),sess->summary[CPAP_PressureAverage].GetDouble(),sess->weighted_avg_event_field(CPAP_Pressure,0));
@ -561,9 +561,9 @@ bool PRS1Loader::Parse002(Session *session,unsigned char *buffer,int size,time_t
data[1]=buffer[pos++];
if (code==0x11) {
session->AddEvent(new Event(t,cpapcode, data,1));
session->AddEvent(new Event(t,CPAP_SnoreGraph,&data[1],1));
session->AddEvent(new Event(t,CPAP_Snore,&data[1],1));
if (data[1]>0) {
session->AddEvent(new Event(t,CPAP_Snore, &data[1],1));
session->AddEvent(new Event(t,PRS1_VSnore2, &data[1],1));
}
} else if (code==0x03) {
data[0]/=10.0;

View File

@ -302,6 +302,30 @@ bool ResmedLoader::Open(QString & path,Profile *profile)
first=false;
}
}
if (sess) {
sess->summary[CPAP_PressureMedian]=sess->avg_event_field(CPAP_Pressure,0);
sess->summary[CPAP_PressureAverage]=sess->weighted_avg_event_field(CPAP_Pressure,0);
sess->summary[CPAP_PressureMinAchieved]=sess->min_event_field(CPAP_Pressure,0);
sess->summary[CPAP_PressureMaxAchieved]=sess->max_event_field(CPAP_Pressure,0);
sess->summary[CPAP_PressureMin]=sess->summary[CPAP_PressureMinAchieved];
sess->summary[CPAP_PressureMax]=sess->summary[CPAP_PressureMaxAchieved];
sess->summary[CPAP_LeakMinimum]=sess->min_event_field(CPAP_Leak,0);
sess->summary[CPAP_LeakMaximum]=sess->max_event_field(CPAP_Leak,0); // should be merged..
sess->summary[CPAP_LeakMedian]=sess->avg_event_field(CPAP_Leak,0);
sess->summary[CPAP_LeakAverage]=sess->weighted_avg_event_field(CPAP_Leak,0);
sess->summary[CPAP_Snore]=sess->sum_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreMinimum]=sess->min_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreMaximum]=sess->max_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreMedian]=sess->avg_event_field(CPAP_Snore,0);
sess->summary[CPAP_SnoreAverage]=sess->weighted_avg_event_field(CPAP_Snore,0);
sess->summary[CPAP_Obstructive]=sess->count_events(CPAP_Obstructive);
sess->summary[CPAP_Hypopnea]=sess->count_events(CPAP_Hypopnea);
sess->summary[CPAP_ClearAirway]=sess->count_events(CPAP_ClearAirway);
sess->summary[CPAP_Mode]=MODE_APAP;
}
if (qprogress) qprogress->setValue(33.0+(float(++cnt)/float(size)*33.0));
}
// m->save();
@ -489,9 +513,11 @@ bool ResmedLoader::LoadPLD(Machine *mach,Session *sess,EDFParser &edf)
} else if (edf.edfsignals[s]->label=="Leak") {
code=CPAP_Leak;
ToTimeDelta(mach,sess,edf,edf.edfsignals[s]->data, code,recs,duration,1.0);
} else {
qDebug(("Unknown Signal "+edf.edfsignals[s]->label).toLatin1());
}
qDebug(("Unknown Signal "+edf.edfsignals[s]->label).toLatin1());
}
}
void ResInitModelMap()

View File

@ -20,7 +20,7 @@ License: GPL
//********************************************************************************************
// Please INCREMENT the following value when making changes to this loaders implementation.
//
const int resmed_data_version=1;
const int resmed_data_version=0;
//
//********************************************************************************************

View File

@ -47,7 +47,7 @@ enum MachineCode//:qint16
BIPAP_EAPAverage,BIPAP_IAPAverage,BIPAP_EAPMin,BIPAP_EAPMax,BIPAP_IAPMin,BIPAP_IAPMax,CPAP_BrokenSummary,
// PRS1 Specific Codes
PRS1_PressurePulse=0x1000,
PRS1_PressurePulse=0x1000,PRS1_VSnore2,
PRS1_Unknown00, PRS1_Unknown01, PRS1_Unknown08, PRS1_Unknown09, PRS1_Unknown0B, PRS1_Unknown0E, PRS1_Unknown10, PRS1_Unknown12,
PRS1_SystemLockStatus, PRS1_SystemResistanceStatus, PRS1_SystemResistanceSetting, PRS1_HoseDiameter, PRS1_AutoOff, PRS1_MaskAlert, PRS1_ShowAHI,

View File

@ -116,18 +116,16 @@ Daily::Daily(QWidget *parent,QGLContext *context) :
AddCPAPData(frw=new WaveData(CPAP_FlowRate,700000)); //FlowRate
AddCPAPData(mpw=new WaveData(CPAP_MaskPressure,700000)); //FlowRate
// AddCPAPData(mpw=new WaveData(CPAP_MaskPressure,700000)); //FlowRate
// Holy crap resmed stuff is huge..
AddGraph(FRW=new gGraphWindow(gSplitter,tr("Flow Rate"),SF));
//FRW->AddLayer(new gFooBar());
FRW->AddLayer(new gYAxis());
FRW->AddLayer(new gXAxis());
FRW->AddLayer(new gLineOverlayBar(flags[0],QColor("light green"),"CSR"));
FRW->AddLayer(new gLineChart(mpw,Qt::blue,700000,true));
//FRW->AddLayer(new gLineChart(mpw,Qt::blue,700000,true));
gLineChart *g=new gLineChart(frw,Qt::black,700000,true);
g->ReportEmpty(true);
FRW->AddLayer(g);
FRW->AddLayer(new gLineOverlayBar(flags[3],QColor("blue"),"H"));
FRW->AddLayer(new gLineOverlayBar(flags[7],QColor("red"),"PR",LOT_Dot));
@ -148,7 +146,7 @@ Daily::Daily(QWidget *parent,QGLContext *context) :
SNORE->setMinimumHeight(150);
AddCPAPData(mv=new EventData(CPAP_MinuteVentilation,0));
AddGraph(MV=new gGraphWindow(gSplitter,tr("Minute Vent."),SF));
AddGraph(MV=new gGraphWindow(gSplitter,tr("Minute Ventilation"),SF));
MV->AddLayer(new gXAxis());
MV->AddLayer(new gYAxis());
MV->AddLayer(new gLineChart(mv,QColor(0x20,0x20,0x7f),65536,false,false,false));
@ -524,31 +522,26 @@ void Daily::Load(QDate date)
html=html+"<tr><td align='center'>"+cpap->first().date().toString(Qt::SystemLocaleShortDate)+"</td><td align='center'>"+cpap->first().toString("HH:mm")+"</td><td align='center'>"+cpap->last().toString("HH:mm")+"</td><td align='center'>"+a.sprintf("%02i:%02i",tt/3600,tt%60)+"</td></tr>\n";
html=html+"<tr><td colspan=4 align=center><hr></td></tr>\n";
if (pref.Exists("fruitsalad") && pref["fruitsalad"].toBool()) {
html=html+("<tr><td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>");
html=html+("<tr><td align='right' bgcolor='#F88017'><b><font color='black'>")+tr("AHI")+("</font></b></td><td bgcolor='#F88017'><b><font color='black'>")+a.sprintf("%.2f",ahi)+("</font></b></td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#4040ff'><b><font color='white'>")+tr("Hypopnea")+("</font></b></td><td bgcolor='#4040ff'><font color='white'>")+a.sprintf("%.2f",hi)+("</font></td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#40afbf'><b>")+tr("Obstructive")+("</b></td><td bgcolor='#40afbf'>")+a.sprintf("%.2f",oai)+("</td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#b254cd'><b>")+tr("ClearAirway")+("</b></td><td bgcolor='#b254cd'>")+a.sprintf("%.2f",cai)+("</td></tr>\n");
html=html+("</table></td><td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>");
html=html+("<tr><td align='right' bgcolor='#ffff80'><b>")+tr("RERA")+("</b></td><td bgcolor='#ffff80'>")+a.sprintf("%.2f",rei)+("</td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#404040'><b><font color='white'>")+tr("FlowLimit")+("</font></b></td><td bgcolor='#404040'><font color='white'>")+a.sprintf("%.2f",fli)+("</font></td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#ff4040'><b>")+tr("Vsnore")+("</b></td><td bgcolor='#ff4040'>")+a.sprintf("%.2f",vsi)+("</td></tr>\n");
html=html+("<tr><td align='right' bgcolor='#80ff80'><b>")+tr("PB/CSR")+("</b></td><td bgcolor='#80ff80'>")+a.sprintf("%.2f",csr)+("%</td></tr>\n");
html=html+("</table></td></tr>");
} else {
html=html+("<tr><td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>");
html=html+("<tr><td align='right'><b><font color='black'>")+tr("AHI")+("</font></b></td><td><b><font color='black'>")+a.sprintf("%.2f",ahi)+("</font></b></td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("Hypopnea")+("</b></td><td>")+a.sprintf("%.2f",hi)+("</td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("Obstructive")+("</b></td><td>")+a.sprintf("%.2f",oai)+("</td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("ClearAirway")+("</b></td><td>")+a.sprintf("%.2f",cai)+("</td></tr>\n");
html=html+("</table></td><td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>");
html=html+("<tr><td align='right'><b>")+tr("RERA")+("</b></td><td>")+a.sprintf("%.2f",rei)+("</td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("FlowLimit")+("</b></td><td>")+a.sprintf("%.2f",fli)+("</td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("Vsnore")+("</b></td><td>")+a.sprintf("%.2f",vsi)+("</td></tr>\n");
html=html+("<tr><td align='right'><b>")+tr("PB/CSR")+("</b></td><td>")+a.sprintf("%.2f%%",csr)+("</td></tr>\n");
html=html+("</table></td></tr>");
QString cs;
if (cpap->machine->GetClass()!="PRS1") {
cs="4 align=center>";
} else cs="2>";
html+=("<tr><td colspan="+cs+"<table cellspacing=0 cellpadding=2 border=0 width='100%'>");
html+=("<tr><td align='right' bgcolor='#F88017'><b><font color='black'>")+tr("AHI")+("</font></b></td><td bgcolor='#F88017'><b><font color='black'>")+a.sprintf("%.2f",ahi)+("</font></b></td></tr>\n");
html+=("<tr><td align='right' bgcolor='#4040ff'><b><font color='white'>")+tr("Hypopnea")+("</font></b></td><td bgcolor='#4040ff'><font color='white'>")+a.sprintf("%.2f",hi)+("</font></td></tr>\n");
html+=("<tr><td align='right' bgcolor='#40afbf'><b>")+tr("Obstructive")+("</b></td><td bgcolor='#40afbf'>")+a.sprintf("%.2f",oai)+("</td></tr>\n");
html+=("<tr><td align='right' bgcolor='#b254cd'><b>")+tr("ClearAirway")+("</b></td><td bgcolor='#b254cd'>")+a.sprintf("%.2f",cai)+("</td></tr>\n");
html+="</table></td>";
if (cpap->machine->GetClass()=="PRS1") {
html+="<td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>";
html+="<tr><td align='right' bgcolor='#ffff80'><b>"+tr("RERA")+("</b></td><td bgcolor='#ffff80'>")+a.sprintf("%.2f",rei)+("</td></tr>\n");
html+="<tr><td align='right' bgcolor='#404040'><b><font color='white'>"+tr("FlowLimit")+("</font></b></td><td bgcolor='#404040'><font color='white'>")+a.sprintf("%.2f",fli)+("</font></td></tr>\n");
html+="<tr><td align='right' bgcolor='#ff4040'><b>"+tr("Vsnore")+("</b></td><td bgcolor='#ff4040'>")+a.sprintf("%.2f",vsi)+("</td></tr>\n");
html+="<tr><td align='right' bgcolor='#80ff80'><b>"+tr("PB/CSR")+("</b></td><td bgcolor='#80ff80'>")+a.sprintf("%.2f",csr)+("%</td></tr>\n");
html+="</table></td>";
}
html+="</tr>";
html=html+("<tr><td colspan=4 align=center><i>")+tr("Event Breakdown")+("</i></td></tr>\n");
{
G_AHI->setFixedSize(gwwidth,gwheight);