Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

i am saving the scan details of patient in tool box. but even if there is no scan image also other details like time and scan mode are saving in tool box. how to avoid it



  • QDate dt;
    QString columns;
    
    QString _PatientList_ImageDirPath;
    QString MRNforReport;
    QString Date;
    ImageCaptureWindow *image;
    
    int TotalPatients;
    
    QString MRNoForIC;
    QString PatientNameIC;
    
    //bool MCC_Parameters_Flag = false;
    PatientListWindow::PatientListWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::PatientListWindow)
    {
    	PRINTFUNCTIONNAME
    		ui->setupUi(this);
    	ui->tableWidget->verticalHeader()->setVisible(false);
    
    	ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView { font-size: 12pt; }");
    
    	ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
    
    	//For Registration bind
    	int noofdays = 0;
    	model = new QSqlTableModel(this, db);
    	model->setTable("ApplicationSettings");
    	model->select();
    	qDebug() << "RowCount" << model->rowCount();
    	if (model->rowCount() != 0)
    	{
    		noofdays = model->record(0).value("NoofPatientDisplayInDays").toInt();
    		columns = model->record(0).value("PatientFieldSettings").toString();
    	}
    	dt = QDate::currentDate().addDays(-noofdays);
    	QSqlQueryModel *modl = new QSqlQueryModel();
    	if (ui->chkAllFields->isChecked() == true)
    	{
    		modl->setQuery("SELECT * FROM Registration WHERE RegDate >=\'" + dt.toString("yyyy-MM-dd") + "' order by Id Desc;");
    	}
    	else
    	{
    		if (columns == "")
    		{
    			modl->setQuery("SELECT * FROM Registration WHERE RegDate >=\'" + dt.toString("yyyy-MM-dd") + "' order by Id Desc;");
    		}
    		else
    		{
    			modl->setQuery("SELECT id," + columns + " FROM Registration WHERE RegDate >=\'" + dt.toString("yyyy-MM-dd") + "' order by Id Desc;");
    		}
    	}
    	RegistrationListBind(modl);
    	style();
    	LoadApplicationSettings();
    
    	ui->btnCancel->setObjectName("command");
    	ui->btnEditRegistration->setObjectName("command");
    	qDebug() << "bef load ";
    	LoadStyleIcon();
    	qDebug() << "aft load ";
    	//image = new ImageCaptureWindow();
    }
    
    
    bool PatientListWindow::CheckNotExist(QString s, QStringList lst)
    {
    	PRINTFUNCTIONNAME
    		bool flag = true;
    	for (int i = 0; i < lst.count(); i++)
    	{
    		if (lst[i] == s)
    		{
    			flag = false;
    			break;
    		}
    	}
    	return flag;
    }
    
    
    void PatientListWindow::LoadThumbnail(QString MRNo)
    {
    	PRINTFUNCTIONNAME
    
    		QSqlQueryModel *modl = new QSqlQueryModel();
    	QString query = "SELECT ExamDateTime,Eye,Technician,SignalStrength,'MACULA HD' as ScanMode,fundusImage,OCTImage FROM MaculaHD where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'MACULA RADIAL' as ScanMode,fundusImage,OCTImage FROM MaculaRadial where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'MACULA CUBE' as ScanMode,fundusImage,OCTImage FROM MaculaCube where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'GLAUCOMA DISC' as ScanMode,fundusImage,OCTImage FROM GlaucomaDisk where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'GLAUCOMA MACULA' as ScanMode,fundusImage,OCTImage FROM GlaucomaMacula where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'ANTERIOR HD' as ScanMode,fundusImage,OCTImage FROM AnteriorHD where MRNo = '" + MRNo + "' UNION ALL";
    	query = query + " SELECT ExamDateTime,Eye,Technician,SignalStrength,'ANTERIOR RADIAL' as ScanMode,IrisImage,OCTImage FROM AnteriorRadial where MRNo = '" + MRNo + "'  Order by ExamDateTime desc";
    
    	modl->setQuery(query);
    
    	// remove exist items
    	for (int i = ui->toolBox->count() - 1; i >= 0; i--)
    	{
    		ui->toolBox->removeItem(i);
    		//qDebug() << "RemoveItem=" <<ui->toolBox->removeItem(i);
    		qDebug() << "remove item ="<<i;
    	}
    
    	QStringList lst;
    	lst.clear();
    	for (int i = 0; i < modl->rowCount(); i++){
    		//qDebug() << "rowcount=" << modl->rowcount();
    
    		if (!lst.contains(modl->record(i).value("ExamDateTime").toDate().toString("yyyy-MM-dd")))
    		{
    			lst << modl->record(i).value("ExamDateTime").toDate().toString("yyyy-MM-dd");
    		}
    	}
    
    	//By Date wise
    	for (int i = 0; i < lst.count(); i++)
    	{
    		// Add pages
    		QWidget *wid = new QWidget();
    		ui->toolBox->addItem(wid, lst[i]);
    		ui->toolBox->visibleRegion();
    		QVBoxLayout *v = new QVBoxLayout();
    		v->setObjectName("QVBL");
    		v->setSpacing(0);
    		v->setMargin(0);
    
    		for (int j = 0; j < modl->rowCount(); j++)
    		{
    			if (lst[i] == modl->record(j).value("ExamDateTime").toDate().toString("yyyy-MM-dd"))
    			{
    				ThumnailListWidget *w = new ThumnailListWidget();
    				w->setObjectName("TH");
    				w->LoadThumbData(modl->record(j).value("ExamDateTime").toDateTime().toString("yyyy-MM-dd HH:mm:ss"), modl->record(j).value("Eye").toString(), modl->record(j).value("ScanMode").toString(), modl->record(j).value("SignalStrength").toInt(), modl->record(j).value("FundusImage").toString(), modl->record(j).value("OCTImage").toString(), MRNo);
    				v->addWidget(w);
    				connect(w, SIGNAL(raiseevent(QString, QString, QString)), SLOT(receivedevent(QString, QString, QString))); //comment  by karthik *****
    
    				wid->setLayout(v);
    			}
    		}
    		v->addStretch();
    	}
    
    }
    
    static void setToolBoxButtonColor(QToolBox* toolBox, int index, QColor color)
    {
    	int i = 0;
    	foreach(QAbstractButton* button, toolBox->findChildren<QAbstractButton*>())
    	{
    		// make sure only toolbox button palettes are modifieds
    		if (button->metaObject()->className() == QString("QToolBoxButton"))
    		{
    			if (i == index)
    			{
    				// found correct button
    				QPalette p = button->palette();
    				p.setColor(QPalette::Button, color);
    				button->setPalette(p);
    				break;
    			}
    			i++;
    		}
    	}
    }
    
    void PatientListWindow::GetThumbnailWidgetCheckedCount(QString srcexamdate)
    {
    
    	//int selectCount = 0;
    	for (int i = 0; i < ui->toolBox->count(); i++)
    	{
    		if (ui->toolBox->itemText(i) == srcexamdate)
    		{
    			QWidget *wid = ui->toolBox->widget(i);
    			QVBoxLayout *v = wid->findChild<QVBoxLayout *>("QVBL");
    
    			//to check checked count
    			for (int j = 0; j < v->count() - 1; j++) // to omite last parent widget
    			{
    				ThumnailListWidget *w = qobject_cast<ThumnailListWidget *>(v->itemAt(j)->widget());
    				QCheckBox *chk = w->findChild<QCheckBox *>("chkwidget");
    
    				if (chk->isChecked())
    				{
    					//selectCount++;
    					setToolBoxButtonColor(ui->toolBox, i, QColor(100, 195, 125));
    					break;
    				}
    				else
    				{
    					setToolBoxButtonColor(ui->toolBox, i, Qt::transparent);
    				}
    			}
    		}		
    
    	}	
    }
    
    
    void PatientListWindow::receivedevent(QString ExamDateTime, QString ScanMode, QString mrno)
    {
    	PRINTFUNCTIONNAME
    
    		QDateTime dt = QDateTime::fromString(ExamDateTime, "yyyy-MM-dd HH:mm:ss");  
    
    	qDebug() << "*********************************" << dt.toString("yyyy-MM-dd");
    
    		GetThumbnailWidgetCheckedCount(dt.toString("yyyy-MM-dd"));
    }
    

  • Moderators

    Hi @V-Swetha-Reddy, and welcome!

    even if there is no scan image also other details like time and scan mode are saving in tool box. how to avoid it

    Answer: Write code to check if there is a scan image. If there is no image, don't call the functions that save the details.


Log in to reply