From 3b7f2ebd044b82feec7e93eaccd2ed7575dd794c Mon Sep 17 00:00:00 2001 From: sunwen Date: Sat, 14 Sep 2024 15:59:22 +0800 Subject: [PATCH] feat: Add delete policy in recon page and system operation log. --- cfgs/usct-product.json | 3 + src/device/DeviceManager.cpp | 5 ++ src/forms/recon/ScanSearchCriteriaForm.cpp | 3 + src/json/jsonobject.cpp | 6 ++ src/json/jsonobject.h | 3 + src/log/SystemOperationLog.cpp | 21 +++++++ src/log/SystemOperationLog.h | 1 + src/main.cpp | 1 + src/translations/en_US.ts | 4 ++ src/translations/zh_CN.ts | 70 ++++++++++++---------- 10 files changed, 85 insertions(+), 32 deletions(-) diff --git a/cfgs/usct-product.json b/cfgs/usct-product.json index d53499a..4cecde4 100644 --- a/cfgs/usct-product.json +++ b/cfgs/usct-product.json @@ -116,5 +116,8 @@ }, "patientlist": { "expire": "7" + }, + "reconlist": { + "expire": "30" } } diff --git a/src/device/DeviceManager.cpp b/src/device/DeviceManager.cpp index ab7e213..23c13c6 100644 --- a/src/device/DeviceManager.cpp +++ b/src/device/DeviceManager.cpp @@ -269,6 +269,11 @@ void DeviceManager::initGUI(bool aIsInitSucceed) //process expired patient list QDate date = QDate::currentDate().addDays(-JsonObject::Instance()->getPatientListExpireDays()); SQLHelper::exec(QString("DELETE FROM Patient WHERE AddDate <= %1").arg(date.toString("yyyy-MM-dd"))); + + //process expired scan list + date = QDate::currentDate().addDays(-JsonObject::Instance()->getScanListExpireDays()); + SQLHelper::exec(QString("DELETE FROM Scan WHERE ScanDateTime <= \"%1\"").arg(date.toString("yyyy-MM-dd"))); + } void DeviceManager::processInitializeProgress(const QString& aProgress) diff --git a/src/forms/recon/ScanSearchCriteriaForm.cpp b/src/forms/recon/ScanSearchCriteriaForm.cpp index 80499db..c96bd12 100644 --- a/src/forms/recon/ScanSearchCriteriaForm.cpp +++ b/src/forms/recon/ScanSearchCriteriaForm.cpp @@ -28,6 +28,8 @@ ScanSearchCriteriaForm::ScanSearchCriteriaForm(QWidget *parent) ui->mLBBeginDate->setUpdatesEnabled(true); ui->mLBBeginDate->setText(QDate::currentDate().toString("yyyy-MM-dd")); + ui->mBtnAll->setText(tr("Last %1 days").arg(JsonObject::Instance()->getScanListExpireDays())); + auto endBox = new ListBox(this); // endBox->setSmallBox(true); ui->verticalLayoutDate->replaceWidget(ui->mLBEndDate,endBox); @@ -139,6 +141,7 @@ ScanSearchCriteriaForm::ScanSearchCriteriaForm(QWidget *parent) }); connect(EventCenter::Default(),&EventCenter::ReloadLanguage,[=](){ ui->retranslateUi(this); + ui->mBtnAll->setText(tr("Last %1 days").arg(JsonObject::Instance()->getScanListExpireDays())); }); } diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index 5760e7d..184172d 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -73,6 +73,7 @@ void JsonObject::init() mDmsSimulator = getBool("dms","simulator"); mOperationLogExpireDays = QString(getJsonString("operatorlog", "expire")).toInt(); mPatientListExpireDays = QString(getJsonString("patientlist", "expire")).toInt(); + mScanListExpireDays = QString(getJsonString("reconlist", "expire")).toInt(); mWorklistHost.ae = QString(getJsonString("worklist", "ae")); mWorklistHost.ip = QString(getJsonString("worklist", "ip")); @@ -647,6 +648,11 @@ int JsonObject::getPatientListExpireDays() return mPatientListExpireDays; } +int JsonObject::getScanListExpireDays() +{ + return mScanListExpireDays; +} + bool JsonObject::getMppsOpen() { return mMppsOpen; diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index 5e27379..eab439d 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -124,6 +124,8 @@ public: int getOperationLogExpireDays(); int getPatientListExpireDays(); + int getScanListExpireDays(); + QString getReconTransferPath(); bool getScanCanWithoutRecon(); @@ -179,6 +181,7 @@ private: int mDefaultProtocal; int mOperationLogExpireDays; int mPatientListExpireDays; + int mScanListExpireDays; host mWorklistHost; host mPacsHost; diff --git a/src/log/SystemOperationLog.cpp b/src/log/SystemOperationLog.cpp index 3d4721b..bcf13a0 100644 --- a/src/log/SystemOperationLog.cpp +++ b/src/log/SystemOperationLog.cpp @@ -1,6 +1,7 @@ #include "SystemOperationLog.h" #include "appvals/AppGlobalValues.h" +#include "json/jsonobject.h" #include @@ -63,3 +64,23 @@ void SystemOperationLog::log(const QString &aOperationText, const QDateTime& aOp reloadFile(); mStreamOut << aOperationDate.toString(Qt::DateFormat::ISODateWithMs).replace("T","\t")<<"\t"<getOperationLogExpireDays(); + QDateTime currentDate = QDateTime::currentDateTime(); + QDateTime deleteDate = currentDate.addDays(-expireDays); + + QDir dir(LOG_DIR); + QStringList logFiles = dir.entryList(QStringList() << "*.log", QDir::Files); + for(const QString &logFile : logFiles) + { + QString filePath = LOG_DIR + "/" + logFile; + QFileInfo fileInfo(filePath); + QDateTime fileDate = fileInfo.created(); + if (fileDate <= deleteDate) + { + QFile::remove(filePath); + } + } +} diff --git a/src/log/SystemOperationLog.h b/src/log/SystemOperationLog.h index e4ed44a..053bbb6 100644 --- a/src/log/SystemOperationLog.h +++ b/src/log/SystemOperationLog.h @@ -13,6 +13,7 @@ public: SystemOperationLog(); ~SystemOperationLog(); void reloadFile(); + static void cleanHistoryLog(); public slots: void log(const QString& aOperationText, const QDateTime& aOperationDate); diff --git a/src/main.cpp b/src/main.cpp index fd3e7e0..a3373de 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -108,6 +108,7 @@ int main(int argc, char* argv[]) int ret = 0; KeyboardManager::getInstance(); UserOperationLog::cleanHistoryLog(); + SystemOperationLog::cleanHistoryLog(); bool sqlConnected= SQLHelper::Open(); if (sqlConnected) { diff --git a/src/translations/en_US.ts b/src/translations/en_US.ts index 11fd4b8..6edb307 100644 --- a/src/translations/en_US.ts +++ b/src/translations/en_US.ts @@ -1655,6 +1655,10 @@ progress:99% Refresh + + Last %1 days + + SelectFormWidget diff --git a/src/translations/zh_CN.ts b/src/translations/zh_CN.ts index d736f1c..4b2a23a 100644 --- a/src/translations/zh_CN.ts +++ b/src/translations/zh_CN.ts @@ -469,27 +469,27 @@ DeviceManager - - - + + + DMS connection error DMS失去连接 - - + + progress:%1% 进度:%1% - + Patient can leave. progress:%1% 检查对象可以起身 进度:%1% - + Data quality assessment in progress progress:99% 数据质量判断中 @@ -497,8 +497,8 @@ progress:99% - - + + Initialize Failed. 初始化失败 @@ -508,101 +508,101 @@ progress:99% 数据库连接失败,请重启设备后再试! - + Device is not ready, start scan operation failed! 设备状态错误,无法开始检查流程 - + Device is not ready, start empty scan operation failed! 设备状态错误,无法开始空水扫查 - + Scan completed! 扫查结束 - + Error: 错误: - + Start scan failed. Reason:time out. 扫查启动失败,原因:超时 - + Start scan failed. Reason:%1 扫查启动失败,原因:%1 - + Start CE Scan Failed. CE扫查启动失败 - + Data is currently being transmitted, please shut down later. 数据传输中,请稍后再执行关机。 - + Shut down failed, please push emergency button to shutdown. 关机失败,请按紧急按钮进行关机。 - - - + + + Scan data transfer failed. 扫查数据上传失败 - + Scan data transfer Succeeded! - + Create empty scan data failed 空水数据新增失败 - + Create scan data failed 扫查数据新增失败 - + Recon disconnected. 重建服务器已断开连接 - - + + Open pump failed. 排水阀打开失败 - + Recon error, can't start scan process 重建服务器错误,无法开始检查流程 - - + + Start auto locate failed 自动化定位启动失败 - + The data quality is low, please restart the data scan. 扫查数据质量较低,请重新开始检查流程 - + Device reset failed, please contact maintenance person 设备复位失败,请联系维修人员 @@ -2540,6 +2540,12 @@ parameters Clear Fields 清空 + + + + Last %1 days + 过去%1天 + SelectFormWidget