feat: Add error message when emergency button pushed.

This commit is contained in:
sunwen
2024-09-12 16:46:52 +08:00
parent 84489708d5
commit fbaece22a1
10 changed files with 259 additions and 87 deletions

View File

@@ -146,6 +146,7 @@ void DeviceManager::initDevice()
mGetAutoLocatePositionAction = new DmsAsyncAction(USRV_CONTROL, ACT_CTL_MOTION_POSITION, this, "responseGetAutoLocatePosition(const QString&)", this);
mGetSoftwareVersionAction = new DmsAsyncAction(USRV_INFOCFG, ACT_IFCFG_VERINFO, this,"responseGetSoftwareVersion(const QString&)", this);
mGetSoftwareVersionAction->setTimeoutInterval(GETDMSVERSION_TIMEOUT);
mEmergencyResetAction = new DmsAsyncAction(USRV_CONTROL, ACT_CTL_EMG_RESET, this,"responseEmergencyButtonReset(const QString&)", this);
connect(mGetSoftwareVersionAction, &DmsAsyncAction::timeout, [this]()
{
emit getDmsVersionResponsed("DMS Version Fetch Error");
@@ -764,6 +765,9 @@ void DeviceManager::processReceiveDMSInfoResult(int aServerID, int aActionID, co
emit responseGetAutoLocatePosition(aContents);
processAutoLocatePosition(aContents);
break;
case ACT_CTL_EMG_RESET:
processEmergencyButtonReset(aContents);
break;
}
break;
default:
@@ -779,6 +783,19 @@ void DeviceManager::processAlarm(const QString& aAlarm)
qDebug()<<"processAlarm : "<<alarmCode;
if(alarmCode >= 400 && alarmCode < 500)
{
switch (alarmCode)
{
case 492://left emergency button pushed
prepareFinishScan(false,"");
emit emergencyButtonPushed(true, false);
return;
case 494://right emergency button pushed
prepareFinishScan(false,"");
emit emergencyButtonPushed(false, false);
return;
default:
break;
}
if(mIsScanning)
{
prepareFinishScan(false, alarm);
@@ -912,7 +929,7 @@ void DeviceManager::getScanProcess()
void DeviceManager::shutdownDms()
{
if(mIsTransfering)
if(mIsTransfering)
{
QString msg = tr("Data is currently being transmitted, please shut down later.");
THROW_ERROR(msg);
@@ -1438,3 +1455,31 @@ void DeviceManager::prepareCheckReconConnection()
}
emit checkReconConnection();
}
void DeviceManager::processEmergencyButtonReset(const QString& aResponse)
{
QJsonObject jsonObj = toJsonObject(aResponse);
int code = jsonObj["code"].toInt();
if(code == -1)
{
QString errorMessage = tr("Device reset failed, please contact maintenance person");
THROW_ERROR(errorMessage);
}
if(jsonObj["info"].toString() == "left" )
{
emit emergencyButtonPushed(true, true);
return;
}
if(jsonObj["info"].toString() == "right" )
{
emit emergencyButtonPushed(false, true);
return;
}
}
void DeviceManager::prepareEmergencyReset()
{
mEmergencyResetAction->execute();
}

View File

@@ -69,6 +69,7 @@ public:
bool hasValidEmptyScan();
bool updateTransferProgress();
int getTransferProgress();
void prepareEmergencyReset();
public slots:
void updateReconState();
@@ -125,6 +126,7 @@ private:
void processShutDownDms(const QString& aResponse);
void processPumpResult(const QString& aResponse);
void processGetSoftwareVersion(const QString& aResponse);
void processEmergencyButtonReset(const QString& aResponse);
void insertEmptyScanRecord();
void insertScanRecord();
@@ -167,6 +169,7 @@ signals:
void responseStopAutoLocate(const QString& aResponse);
void responseGetAutoLocatePosition(const QString& aResponse);
void responseCheckDataQuality(const QString& aResponse);
void responseEmergencyButtonReset(const QString& aResponse);
//Recon
void createEmptyScanToRecon(const QString& aScanID, const QString& aPath);
void createScanToRecon(const QString& aScanID, const QString& aStudyUID,const QString& aMPPSUID, const QString& aReferenceID, const QString& aPath);
@@ -185,6 +188,7 @@ signals:
void shutdownDmsSended();
void shutdownDmsFailed();
void getDmsVersionResponsed(const QString& aDmsVersion);
void emergencyButtonPushed(bool aIsLeft, bool aIsReset);
private:
@@ -241,6 +245,7 @@ private:
DmsAsyncAction* mPumpControlAction = nullptr;
DmsAsyncAction* mGetAutoLocatePositionAction = nullptr;
DmsAsyncAction* mGetSoftwareVersionAction = nullptr;
DmsAsyncAction* mEmergencyResetAction = nullptr;
InfoReceiveWorker* mInfoReceiveWorker = nullptr;

View File

@@ -90,6 +90,7 @@ enum{
ACT_CTL_MOTION_START, //启动自动定位功能
ACT_CTL_MOTION_STOP, //停止自动定位功能
ACT_CTL_MOTION_POSITION, //查询自动定位状态(位置)
ACT_CTL_EMG_RESET, //复位急停按钮
ACT_CTL_DRIVER, //驱动控制(加载卸载驱动)
ACT_CTL_EXIT, //退出程序和守护进程
@@ -142,6 +143,7 @@ enum{
ACT_DIG_PROGRESS, //进度上报
ACT_DIG_WARNING, //报警状态上报
ACT_DIG_MISCT, //杂类测试。
ACT_DIG_SIMULATOR, //模拟功能配置
};
#endif

View File

@@ -38,6 +38,7 @@
#include "utilities/GetLockScreenTimeHelper.h"
#include "utilities/GetProtocalHelper.h"
#include "utilities/WorklistFilterHelper.h"
#include "device/DeviceManager.h"
#include "appvals/AppGlobalValues.h"
#include "json/jsonobject.h"
@@ -54,6 +55,8 @@ DialogManager::DialogManager()
, mScreenSaverWindow(nullptr)
, mOperationMessageDialog(nullptr)
, mSyncDialog(nullptr)
, mLeftEmergencyDialog(nullptr)
, mRightEmergencyDialog(nullptr)
, mTopWidget(nullptr)
, mCEchoTestDialog(nullptr)
, mWorklistLoadingDialog(nullptr)
@@ -61,17 +64,27 @@ DialogManager::DialogManager()
}
void DialogManager::init(QWidget* aParent) {
DialogManager::~DialogManager()
{
clearMessageDialog();
//delete mScreenSaverWindow;
}
void DialogManager::init(QWidget* aParent)
{
connect(EventCenter::Default(), &EventCenter::DeviceErrorRaise,this,&DialogManager::raiseDeviceError);
connect(EventCenter::Default(), &EventCenter::DeviceInfoRaise,this,&DialogManager::raiseDeviceInfo);
connect(EventCenter::Default(), &EventCenter::InvokeOperationStart,this,&DialogManager::invokeOperationStart);
connect(EventCenter::Default(), &EventCenter::InvokeOperationProgress,this,&DialogManager::invokeOperationProgress);
connect(EventCenter::Default(), &EventCenter::InvokeOperationPending,this,&DialogManager::invokeOperationPending);
connect(EventCenter::Default(), &EventCenter::InvokeOperationEnd,this,&DialogManager::invokeOperationEnd);
connect(DeviceManager::Default(), &DeviceManager::emergencyButtonPushed, this, &DialogManager::requestEmergencyButtonPushed);
MultyMessageDialogManager::getInstance()->setDialogParent(aParent);
mTopWidget = aParent;
mScreenSaverWindow = new ScreenSaverWindow();
mWorklistLoadingDialog = new WorklistLoadingDialog(aParent);
mLeftEmergencyDialog = nullptr;
mRightEmergencyDialog = nullptr;
connect(EventCenter::Default(), &EventCenter::WorklistSearchFinished, mWorklistLoadingDialog, &QDialog::accept);
}
@@ -609,11 +622,6 @@ void DialogManager::clearMessageDialog() {
}
}
DialogManager::~DialogManager() {
clearMessageDialog();
//delete mScreenSaverWindow;
}
void DialogManager::raiseMultyMessageDialog(const QString& aMessage, MessageLevel aMessageLevel)
{
MultyMessageDialogManager::getInstance()->raiseDialog(aMessage, aMessageLevel);
@@ -649,3 +657,75 @@ void DialogManager::setFocusToTopDialog()
mTopWidget->setFocus();
}
}
void DialogManager::requestEmergencyButtonPushed(bool aIsLeftButton, bool aIsRest)
{
qDebug()<<"requestEmergencyButtonPushed" << aIsLeftButton<<aIsRest;
GUIMessageDialog* dialog;
QString message;
if(aIsLeftButton)
{
if(mLeftEmergencyDialog == nullptr)
{
mLeftEmergencyDialog = new GUIMessageDialog(mTopWidget);
}
dialog = mLeftEmergencyDialog;
message = tr("The left emergency button has been pressed. Please reset left the emergency button before operating the device");
}
else
{
if(mRightEmergencyDialog == nullptr)
{
mRightEmergencyDialog = new GUIMessageDialog(mTopWidget);
}
dialog = mRightEmergencyDialog;
message = tr("The right emergency button has been pressed. Please reset right the emergency button before operating the device");
}
if(aIsRest)
{
dialog->setEnableExitButton(true);
}
else
{
dialog->setEnableExitButton(false);
if(!dialog->isHidden())
{
return;
}
if(mFunctionDialog!= nullptr && mFunctionDialog->isRunning())
{
dialog->setWindowFlags(dialog->windowFlags() | Qt::WindowStaysOnTopHint | Qt::BypassWindowManagerHint );
}
else
{
dialog->setWindowFlags(dialog->windowFlags() & ~Qt::WindowStaysOnTopHint & ~Qt::BypassWindowManagerHint );
}
if (nullptr != mTopWidget && mTopWidget->inherits("GUIMessageDialog"))
{
GUIMessageDialog* parent = qobject_cast<GUIMessageDialog*>(mTopWidget);
if (parent->getDialogPos().y() + 320 + GUIMESSAGEDIALOG_OFFSET < 1080)
{
dialog->moveDialog(parent->getDialogPos() + QPoint(GUIMESSAGEDIALOG_OFFSET, GUIMESSAGEDIALOG_OFFSET));
}
}
dialog->showMessage(message);
dialog->stopLoading();
dialog->showExitButton();
setTopWidget(dialog);
dialog->setWindowModality(Qt::WindowModal);
dialog->showFullScreen ();
dialog->exec();
releaseTopWidget(dialog);
if( (mLeftEmergencyDialog == nullptr || mLeftEmergencyDialog->isHidden()) &&
(mRightEmergencyDialog == nullptr || mRightEmergencyDialog->isHidden()))
{
DeviceManager::Default()->prepareEmergencyReset();
}
delete dialog;
}
}

View File

@@ -88,6 +88,7 @@ public:
void invokeOperationEnd(QObject* parent, QObject* msg);
void setFocusToTopDialog();
void requestLoadingWorklist();
void requestEmergencyButtonPushed(bool aIsLeftButton, bool aIsRest);
private:
void clearMessageDialog();
@@ -102,6 +103,8 @@ private:
ScreenSaverWindow* mScreenSaverWindow;
QPointer<GUIMessageDialog> mOperationMessageDialog;
QPointer<GUIMessageDialog> mSyncDialog;
QPointer<GUIMessageDialog> mLeftEmergencyDialog;
QPointer<GUIMessageDialog> mRightEmergencyDialog;
QWidget* mTopWidget;
std::mutex mMutex;
CEchoTestDialog* mCEchoTestDialog;

View File

@@ -199,4 +199,8 @@ QPoint GUIMessageDialog::getDialogPos()
{
return mUI->innerWidget->pos();
}
;
void GUIMessageDialog::setEnableExitButton(bool aIsEnabled)
{
mBtnAppend->setEnabled(aIsEnabled);
}

View File

@@ -28,6 +28,8 @@ public:
void setOpacity(double);
void moveDialog(const QPoint& aPos);
QPoint getDialogPos();
void setEnableExitButton(bool aIsEnabled);
protected:
void timerEvent(QTimerEvent* event) override ;
private:

View File

@@ -858,6 +858,10 @@ QToolButton#mppsSettingsButton{
text-align: center;
}
QPushButton#cechoButton{
background: #365880;
}
/*------AccountTableForm-----------------------------------------------------*/
QWidget#commandWidgetnoBBorder {
min-height: 123px;
@@ -876,9 +880,6 @@ QWidget#SearchCriteriaForm QPushButton:disabled {
color:#505050;
}
/*------Dialogs--------------------------------------------------------------*/
/*------GUIFormBaseDialog----------------------------------------------------*/

View File

@@ -237,26 +237,26 @@
<source>Connecting from device to %1:%2......</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connection test from device to %1:%2 failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connection test from device to %1:%2 successed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting from server to %1:%2......</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connection test from server to %1:%2 successed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connection test from device to %1:%2 failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connection test from server to %1:%2 failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Connecting from server to %1:%2......</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>CEchoTestDialog</name>
@@ -411,6 +411,21 @@ progress:99%</source>
<source>Error: </source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Device reset failed, please contact maintenance person</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogManager</name>
<message>
<source>The left emergency button has been pressed. Please reset left the emergency button before operating the device</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The right emergency button has been pressed. Please reset right the emergency button before operating the device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DicomCfgDialog</name>
@@ -1293,11 +1308,11 @@ progress:99%</source>
<context>
<name>PatientInformation</name>
<message>
<source>Scheduled Date</source>
<source>Accession Number</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Accession Number</source>
<source>Scheduled Date</source>
<translation type="unfinished"></translation>
</message>
</context>

View File

@@ -468,139 +468,144 @@
<context>
<name>DeviceManager</name>
<message>
<location filename="../device/DeviceManager.cpp" line="167"/>
<location filename="../device/DeviceManager.cpp" line="814"/>
<location filename="../device/DeviceManager.cpp" line="822"/>
<location filename="../device/DeviceManager.cpp" line="1426"/>
<location filename="../device/DeviceManager.cpp" line="168"/>
<location filename="../device/DeviceManager.cpp" line="831"/>
<location filename="../device/DeviceManager.cpp" line="839"/>
<location filename="../device/DeviceManager.cpp" line="1446"/>
<source>DMS connection error</source>
<translation type="unfinished">DMS失去连接</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="360"/>
<location filename="../device/DeviceManager.cpp" line="369"/>
<location filename="../device/DeviceManager.cpp" line="361"/>
<location filename="../device/DeviceManager.cpp" line="370"/>
<source>progress:%1%</source>
<translation type="unfinished">:%1%</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="374"/>
<location filename="../device/DeviceManager.cpp" line="375"/>
<source>Patient can leave.
progress:%1%</source>
<translation type="unfinished">
:%1%</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="381"/>
<location filename="../device/DeviceManager.cpp" line="382"/>
<source>Data quality assessment in progress
progress:99%</source>
<translation type="unfinished">
进度:99%</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="256"/>
<location filename="../device/DeviceManager.cpp" line="875"/>
<location filename="../device/DeviceManager.cpp" line="883"/>
<location filename="../device/DeviceManager.cpp" line="257"/>
<location filename="../device/DeviceManager.cpp" line="892"/>
<location filename="../device/DeviceManager.cpp" line="900"/>
<source>Initialize Failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="227"/>
<location filename="../device/DeviceManager.cpp" line="228"/>
<source>Fail to connect to DB!Reboot device to try!</source>
<translation type="unfinished">!</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="317"/>
<location filename="../device/DeviceManager.cpp" line="318"/>
<source>Device is not ready, start scan operation failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="317"/>
<location filename="../device/DeviceManager.cpp" line="318"/>
<source>Device is not ready, start empty scan operation failed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="434"/>
<location filename="../device/DeviceManager.cpp" line="435"/>
<source>Scan completed!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="778"/>
<location filename="../device/DeviceManager.cpp" line="782"/>
<source>Error: </source>
<translation type="unfinished">: </translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="849"/>
<location filename="../device/DeviceManager.cpp" line="866"/>
<source>Start scan failed. Reason:time out.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="860"/>
<location filename="../device/DeviceManager.cpp" line="877"/>
<source>Start scan failed. Reason:%1</source>
<translation type="unfinished">%1</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="885"/>
<location filename="../device/DeviceManager.cpp" line="902"/>
<source>Start CE Scan Failed.</source>
<translation type="unfinished">CE扫查启动失败</translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="917"/>
<location filename="../device/DeviceManager.cpp" line="936"/>
<source>Data is currently being transmitted, please shut down later.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="924"/>
<location filename="../device/DeviceManager.cpp" line="943"/>
<source>Shut down failed, please push emergency button to shutdown.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1015"/>
<location filename="../device/DeviceManager.cpp" line="1025"/>
<location filename="../device/DeviceManager.cpp" line="1101"/>
<location filename="../device/DeviceManager.cpp" line="1034"/>
<location filename="../device/DeviceManager.cpp" line="1044"/>
<location filename="../device/DeviceManager.cpp" line="1120"/>
<source>Scan data transfer failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1079"/>
<location filename="../device/DeviceManager.cpp" line="1098"/>
<source>Scan data transfer Succeeded!</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1121"/>
<location filename="../device/DeviceManager.cpp" line="1140"/>
<source>Create empty scan data failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1143"/>
<location filename="../device/DeviceManager.cpp" line="1162"/>
<source>Create scan data failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1210"/>
<location filename="../device/DeviceManager.cpp" line="1229"/>
<source>Recon disconnected.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1275"/>
<location filename="../device/DeviceManager.cpp" line="1290"/>
<location filename="../device/DeviceManager.cpp" line="1295"/>
<location filename="../device/DeviceManager.cpp" line="1310"/>
<source>Open pump failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1307"/>
<location filename="../device/DeviceManager.cpp" line="1327"/>
<source>Recon error, can&apos;t start scan process</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1348"/>
<location filename="../device/DeviceManager.cpp" line="1400"/>
<location filename="../device/DeviceManager.cpp" line="1368"/>
<location filename="../device/DeviceManager.cpp" line="1420"/>
<source>Start auto locate failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1420"/>
<location filename="../device/DeviceManager.cpp" line="1440"/>
<source>The data quality is low, please restart the data scan.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../device/DeviceManager.cpp" line="1468"/>
<source>Device reset failed, please contact maintenance person</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DialogManager</name>
@@ -616,6 +621,16 @@ progress:99%</source>
<source>Last 7 days</source>
<translation type="obsolete">7</translation>
</message>
<message>
<location filename="../dialogs/DialogManager.cpp" line="673"/>
<source>The left emergency button has been pressed. Please reset left the emergency button before operating the device</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../dialogs/DialogManager.cpp" line="682"/>
<source>The right emergency button has been pressed. Please reset right the emergency button before operating the device</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>DicomCfgDialog</name>
@@ -1781,6 +1796,11 @@ progress:99%</source>
<source>No</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../recon/PACSSettingsDataModel.cpp" line="52"/>
<source>Server AE</source>
<translation type="unfinished">AE</translation>
</message>
<message>
<location filename="../recon/PACSSettingsDataModel.cpp" line="52"/>
<source>AETitle</source>
@@ -1796,11 +1816,6 @@ progress:99%</source>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../recon/PACSSettingsDataModel.cpp" line="52"/>
<source>Server AE</source>
<translation type="unfinished">AE</translation>
</message>
<message>
<location filename="../recon/PACSSettingsDataModel.cpp" line="52"/>
<source>Use SC</source>
@@ -2151,44 +2166,44 @@ progress:99%</source>
<translation type="obsolete"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="107"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="153"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="108"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="154"/>
<source>Patient ID</source>
<translation type="unfinished">ID</translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="108"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="154"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="109"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="155"/>
<source>Accession Number</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="109"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="155"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="110"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="156"/>
<source>Patient Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="112"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="158"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="113"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="159"/>
<source>Operator Name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="110"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="156"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="111"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="157"/>
<source>Scan Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="111"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="157"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="112"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="158"/>
<source>Laterality</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconFormWidget.cpp" line="113"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="159"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="114"/>
<location filename="../forms/recon/ReconFormWidget.cpp" line="160"/>
<source>State</source>
<translation type="unfinished"></translation>
</message>
@@ -2265,49 +2280,49 @@ progress:99%</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="54"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="55"/>
<source>Transfer completed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="57"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="63"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="58"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="65"/>
<source>Recon create failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="60"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="66"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="62"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="69"/>
<source>Wait to recon</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="69"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="72"/>
<source>Recon ing</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="72"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="75"/>
<source>Recon failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="75"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="79"/>
<source>Recon succeed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="78"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="82"/>
<source>PACS failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="81"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="86"/>
<source>PACS succeed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="84"/>
<location filename="../forms/recon/ReconStateDelegate.cpp" line="89"/>
<source>Unknow</source>
<translation type="unfinished"></translation>
</message>