mirror of
https://gitlab.com/pholy/OSCAR-code.git
synced 2025-04-07 19:50:45 +00:00
Toying with intercepting links in Daily views html panel
This commit is contained in:
parent
a793f16398
commit
e2e89e1134
71
daily.cpp
71
daily.cpp
@ -226,12 +226,15 @@ Daily::Daily(QWidget *parent,gGraphView * shared, MainWindow *mw)
|
|||||||
ui->tabWidget->setCurrentWidget(ui->details);
|
ui->tabWidget->setCurrentWidget(ui->details);
|
||||||
|
|
||||||
ui->webView->settings()->setFontSize(QWebSettings::DefaultFontSize,QApplication::font().pointSize());
|
ui->webView->settings()->setFontSize(QWebSettings::DefaultFontSize,QApplication::font().pointSize());
|
||||||
|
ui->webView->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks);
|
||||||
|
connect(ui->webView,SIGNAL(linkClicked(QUrl)),this,SLOT(on_Link_clicked(QUrl)));
|
||||||
// TODO: Add preference to hide do this for Widget Haters..
|
// TODO: Add preference to hide do this for Widget Haters..
|
||||||
//ui->calNavWidget->hide();
|
//ui->calNavWidget->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
Daily::~Daily()
|
Daily::~Daily()
|
||||||
{
|
{
|
||||||
|
disconnect(ui->webView,SIGNAL(linkClicked(QUrl)),this,SLOT(on_Link_clicked(QUrl)));
|
||||||
// Save any last minute changes..
|
// Save any last minute changes..
|
||||||
if (previous_date.isValid())
|
if (previous_date.isValid())
|
||||||
Unload(previous_date);
|
Unload(previous_date);
|
||||||
@ -239,6 +242,33 @@ Daily::~Daily()
|
|||||||
// delete splitter;
|
// delete splitter;
|
||||||
delete ui;
|
delete ui;
|
||||||
}
|
}
|
||||||
|
void Daily::on_Link_clicked(const QUrl &url)
|
||||||
|
{
|
||||||
|
QString code=url.toString().section("=",0,0).toLower();
|
||||||
|
QString data=url.toString().section("=",1);
|
||||||
|
int sid=data.toInt();
|
||||||
|
Day *day=NULL;
|
||||||
|
if (code=="cpap") {
|
||||||
|
day=PROFILE.GetDay(previous_date,MT_CPAP);
|
||||||
|
} else if (code=="oxi") {
|
||||||
|
day=PROFILE.GetDay(previous_date,MT_OXIMETER);
|
||||||
|
} else if (code=="event") {
|
||||||
|
QList<QTreeWidgetItem *> list=ui->treeWidget->findItems(data,Qt::MatchContains);
|
||||||
|
if (list.size()>0) {
|
||||||
|
ui->treeWidget->setCurrentItem(list.at(0));
|
||||||
|
ui->tabWidget->setCurrentIndex(1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
qDebug() << "Clicked on" << code << data;
|
||||||
|
}
|
||||||
|
if (day) {
|
||||||
|
|
||||||
|
Session *sess=day->machine->sessionlist[sid];
|
||||||
|
if (sess) {
|
||||||
|
GraphView->SetXBounds(sess->first(),sess->last());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Daily::ReloadGraphs()
|
void Daily::ReloadGraphs()
|
||||||
{
|
{
|
||||||
@ -288,6 +318,9 @@ void Daily::UpdateEventsTree(QTreeWidget *tree,Day *day)
|
|||||||
&& (code!=CPAP_ClearAirway)
|
&& (code!=CPAP_ClearAirway)
|
||||||
&& (code!=CPAP_CSR)
|
&& (code!=CPAP_CSR)
|
||||||
&& (code!=CPAP_RERA)
|
&& (code!=CPAP_RERA)
|
||||||
|
&& (code!=CPAP_NRI)
|
||||||
|
&& (code!=CPAP_LeakFlag)
|
||||||
|
&& (code!=CPAP_ExP)
|
||||||
&& (code!=CPAP_FlowLimit)
|
&& (code!=CPAP_FlowLimit)
|
||||||
&& (code!=CPAP_PressurePulse)
|
&& (code!=CPAP_PressurePulse)
|
||||||
&& (code!=CPAP_VSnore)) continue;
|
&& (code!=CPAP_VSnore)) continue;
|
||||||
@ -421,7 +454,12 @@ void Daily::Load(QDate date)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
lastcpapday=cpap;
|
lastcpapday=cpap;
|
||||||
QString html="<html><head><style type='text/css'>p,a,td,body { font-family: 'FreeSans', 'Sans Serif'; } p,a,td,body { font-size: 12px; } </style>"
|
QString html="<html><head><style type='text/css'>"
|
||||||
|
"p,a,td,body { font-family: 'FreeSans', 'Sans Serif'; }"
|
||||||
|
"p,a,td,body { font-size: 12px; }"
|
||||||
|
"a:link,a:visited { color: inherit; text-decoration: none; }"
|
||||||
|
"a:hover { background-color: white; color: black; text-decoration:none; font-weight: bold; }"
|
||||||
|
"</style>"
|
||||||
"</head>"
|
"</head>"
|
||||||
"<body leftmargin=0 rightmargin=0 topmargin=0 marginwidth=0 marginheight=0>"
|
"<body leftmargin=0 rightmargin=0 topmargin=0 marginwidth=0 marginheight=0>"
|
||||||
"<table cellspacing=0 cellpadding=2 border=0 width='100%'>\n";
|
"<table cellspacing=0 cellpadding=2 border=0 width='100%'>\n";
|
||||||
@ -477,6 +515,9 @@ void Daily::Load(QDate date)
|
|||||||
float rei=cpap->count(CPAP_RERA)/cpap->hours();
|
float rei=cpap->count(CPAP_RERA)/cpap->hours();
|
||||||
float vsi=cpap->count(CPAP_VSnore)/cpap->hours();
|
float vsi=cpap->count(CPAP_VSnore)/cpap->hours();
|
||||||
float fli=cpap->count(CPAP_FlowLimit)/cpap->hours();
|
float fli=cpap->count(CPAP_FlowLimit)/cpap->hours();
|
||||||
|
float nri=cpap->count(CPAP_NRI)/cpap->hours();
|
||||||
|
float lki=cpap->count(CPAP_LeakFlag)/cpap->hours();
|
||||||
|
float exp=cpap->count(CPAP_ExP)/cpap->hours();
|
||||||
|
|
||||||
//float p90=cpap->p90(CPAP_Pressure);
|
//float p90=cpap->p90(CPAP_Pressure);
|
||||||
//eap90=cpap->p90(CPAP_EPAP);
|
//eap90=cpap->p90(CPAP_EPAP);
|
||||||
@ -512,21 +553,29 @@ void Daily::Load(QDate date)
|
|||||||
} else cs="2>";
|
} else cs="2>";
|
||||||
html+="<tr><td colspan="+cs+"<table cellspacing=0 cellpadding=2 border=0 width='100%'>"
|
html+="<tr><td colspan="+cs+"<table cellspacing=0 cellpadding=2 border=0 width='100%'>"
|
||||||
"<tr><td align='right' bgcolor='#F88017'><b><font color='black'>"+tr("AHI")+"</font></b></td><td bgcolor='#F88017'><b><font color='black'>"+QString().sprintf("%.2f",ahi)+"</font></b></td></tr>\n"
|
"<tr><td align='right' bgcolor='#F88017'><b><font color='black'>"+tr("AHI")+"</font></b></td><td bgcolor='#F88017'><b><font color='black'>"+QString().sprintf("%.2f",ahi)+"</font></b></td></tr>\n"
|
||||||
"<tr><td align='right' bgcolor='#4040ff'><b><font color='white'>"+tr("Hypopnea")+"</font></b></td><td bgcolor='#4040ff'><font color='white'>"+QString().sprintf("%.2f",hi)+"</font></td></tr>\n";
|
"<tr><td align='right' bgcolor='#4040ff'><b><font color='white'><a href='event=Hypopnea'>"+tr("Hypopnea")+"</a></font></b></td><td bgcolor='#4040ff'><font color='white'>"+QString().sprintf("%.2f",hi)+"</font></td></tr>\n";
|
||||||
if (cpap->machine->GetClass()=="ResMed") {
|
if (cpap->machine->GetClass()=="ResMed") {
|
||||||
html+="<tr><td align='right' bgcolor='#208020'><b>"+tr("Apnea")+"</b></td><td bgcolor='#208020'>"+QString().sprintf("%.2f",uai)+"</td></tr>\n";
|
html+="<tr><td align='right' bgcolor='#208020'><b><a href='event=Apnea'>"+tr("Unspecified Apnea")+"</a></b></td><td bgcolor='#208020'>"+QString().sprintf("%.2f",uai)+"</td></tr>\n";
|
||||||
}
|
}
|
||||||
html+="<tr><td align='right' bgcolor='#40afbf'><b>"+tr("Obstructive")+"</b></td><td bgcolor='#40afbf'>"+QString().sprintf("%.2f",oai)+"</td></tr>\n"
|
html+="<tr><td align='right' bgcolor='#40afbf'><b><a href='event=Obstructive'>"+tr("Obstructive")+"</a></b></td><td bgcolor='#40afbf'>"+QString().sprintf("%.2f",oai)+"</td></tr>\n"
|
||||||
"<tr><td align='right' bgcolor='#b254cd'><b>"+tr("Clear Airway")+"</b></td><td bgcolor='#b254cd'>"+QString().sprintf("%.2f",cai)+"</td></tr>\n"
|
"<tr><td align='right' bgcolor='#b254cd'><b><a href='event=Clear Airway'>"+tr("Clear Airway")+"</a></b></td><td bgcolor='#b254cd'>"+QString().sprintf("%.2f",cai)+"</td></tr>\n"
|
||||||
"</table></td>";
|
"</table></td>";
|
||||||
|
|
||||||
if (cpap->machine->GetClass()=="PRS1") {
|
if (cpap->machine->GetClass()=="PRS1") {
|
||||||
html+="<td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>"
|
html+="<td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>"
|
||||||
"<tr><td align='right' bgcolor='#ffff80'><b>"+tr("RERA")+"</b></td><td bgcolor='#ffff80'>"+QString().sprintf("%.2f",rei)+"</td></tr>\n"
|
"<tr><td align='right' bgcolor='#ffff80'><b><a href='event=Respiratory Effort'>"+tr("RERA")+"</a></b></td><td bgcolor='#ffff80'>"+QString().sprintf("%.2f",rei)+"</td></tr>\n"
|
||||||
"<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"
|
"<tr><td align='right' bgcolor='#404040'><b><font color='white'><a href='event=Flow Limit'>"+tr("FlowLimit")+"</a></font></b></td><td bgcolor='#404040'><font color='white'>"+a.sprintf("%.2f",fli)+"</font></td></tr>\n"
|
||||||
"<tr><td align='right' bgcolor='#ff4040'><b>"+tr("Vsnore")+"</b></td><td bgcolor='#ff4040'>"+QString().sprintf("%.2f",vsi)+"</td></tr>\n"
|
"<tr><td align='right' bgcolor='#ff4040'><b><a href='event=Vibratory snore'>"+tr("Vsnore")+"</a></b></td><td bgcolor='#ff4040'>"+QString().sprintf("%.2f",vsi)+"</td></tr>\n"
|
||||||
"<tr><td align='right' bgcolor='#80ff80'><b>"+tr("PB/CSR")+"</b></td><td bgcolor='#80ff80'>"+QString().sprintf("%.2f",csr)+"%</td></tr>\n"
|
"<tr><td align='right' bgcolor='#80ff80'><b><a href='event=Cheyne Stokes'>"+tr("PB/CSR")+"</a></b></td><td bgcolor='#80ff80'>"+QString().sprintf("%.2f",csr)+"%</td></tr>\n"
|
||||||
"</table></td>";
|
"</table></td>";
|
||||||
|
} else if (cpap->machine->GetClass()=="Intellipap") {
|
||||||
|
html+="<td colspan=2><table cellspacing=0 cellpadding=2 border=0 width='100%'>"
|
||||||
|
"<tr><td align='right' bgcolor='#ffff80'><b><a href='event=NRI'>"+tr("NRI")+"</a></b></td><td bgcolor='#ffff80'>"+QString().sprintf("%.2f",nri)+"</td></tr>\n"
|
||||||
|
"<tr><td align='right' bgcolor='#404040'><b><font color='white'><a href='event=Leak'>"+tr("Leak Idx")+"</a></font></b></td><td bgcolor='#404040'><font color='white'>"+a.sprintf("%.2f",lki)+"</font></td></tr>\n"
|
||||||
|
"<tr><td align='right' bgcolor='#ff4040'><b><a href='event=VSnore'>"+tr("Vibratory Snore")+"</a></b></td><td bgcolor='#ff4040'>"+QString().sprintf("%.2f",vsi)+"</td></tr>\n"
|
||||||
|
"<tr><td align='right' bgcolor='#80ff80'><b><a href='event=ExP'>"+tr("Exhalation Puff")+"</a></b></td><td bgcolor='#80ff80'>"+QString().sprintf("%.2f",exp)+"%</td></tr>\n"
|
||||||
|
"</table></td>";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -640,7 +689,7 @@ void Daily::Load(QDate date)
|
|||||||
ld=QDateTime::fromTime_t((*s)->last()/1000L);
|
ld=QDateTime::fromTime_t((*s)->last()/1000L);
|
||||||
QHash<ChannelID,QVariant>::iterator i=(*s)->settings.find("BrokenWaveform");
|
QHash<ChannelID,QVariant>::iterator i=(*s)->settings.find("BrokenWaveform");
|
||||||
if ((i!=(*s)->settings.end()) && i.value().toBool()) corrupted_waveform=true;
|
if ((i!=(*s)->settings.end()) && i.value().toBool()) corrupted_waveform=true;
|
||||||
tmp.sprintf(("<tr><td align=center>%08i</td><td align=center>"+fd.date().toString(Qt::SystemLocaleShortDate)+"</td><td align=center>"+fd.toString("HH:mm ")+"</td><td align=center>"+ld.toString("HH:mm")+"</td></tr>").toLatin1(),(*s)->session());
|
tmp.sprintf(("<tr><td align=center><a href='cpap=%i'>%08i</a></td><td align=center>"+fd.date().toString(Qt::SystemLocaleShortDate)+"</td><td align=center>"+fd.toString("HH:mm ")+"</td><td align=center>"+ld.toString("HH:mm")+"</td></tr>").toLatin1(),(*s)->session(),(*s)->session());
|
||||||
html+=tmp;
|
html+=tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -650,7 +699,7 @@ void Daily::Load(QDate date)
|
|||||||
ld=QDateTime::fromTime_t((*s)->last()/1000L);
|
ld=QDateTime::fromTime_t((*s)->last()/1000L);
|
||||||
QHash<ChannelID,QVariant>::iterator i=(*s)->settings.find("BrokenWaveform");
|
QHash<ChannelID,QVariant>::iterator i=(*s)->settings.find("BrokenWaveform");
|
||||||
if ((i!=(*s)->settings.end()) && i.value().toBool()) corrupted_waveform=true;
|
if ((i!=(*s)->settings.end()) && i.value().toBool()) corrupted_waveform=true;
|
||||||
tmp.sprintf(("<tr><td align=center>%08i</td><td align=center>"+fd.date().toString(Qt::SystemLocaleShortDate)+"</td><td align=center>"+fd.toString("HH:mm ")+"</td><td align=center>"+ld.toString("HH:mm")+"</td></tr>").toLatin1(),(*s)->session());
|
tmp.sprintf(("<tr><td align=center><a href='oxi=%i'>%08i</a></td><td align=center>"+fd.date().toString(Qt::SystemLocaleShortDate)+"</td><td align=center>"+fd.toString("HH:mm ")+"</td><td align=center>"+ld.toString("HH:mm")+"</td></tr>").toLatin1(),(*s)->session(),(*s)->session());
|
||||||
html+=tmp;
|
html+=tmp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user