Refactory ScanFormWidget.
This commit is contained in:
@@ -93,6 +93,7 @@ void GetWorkListDialog::initializeContentWidgets()
|
|||||||
mPatientIDText->setText(tr("Patient ID"));
|
mPatientIDText->setText(tr("Patient ID"));
|
||||||
contentLayout->addWidget(mPatientIDText);
|
contentLayout->addWidget(mPatientIDText);
|
||||||
contentLayout->addWidget(mPatientId);
|
contentLayout->addWidget(mPatientId);
|
||||||
|
mEditEndLine->setFixedHeight(3);
|
||||||
mEditEndLine->setObjectName("endline");
|
mEditEndLine->setObjectName("endline");
|
||||||
contentLayout->addWidget(mEditEndLine);
|
contentLayout->addWidget(mEditEndLine);
|
||||||
mPatientIDText->setVisible(false);
|
mPatientIDText->setVisible(false);
|
||||||
|
|||||||
@@ -23,46 +23,35 @@ PatientInformationForm::~PatientInformationForm()
|
|||||||
delete mJsonStr;
|
delete mJsonStr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void PatientInformationForm::setPatientInformation(PatientInformation* information) {
|
void PatientInformationForm::setPatientInformation(PatientInformationPointer information) {
|
||||||
if(information){
|
if(information)
|
||||||
mUI->lbl_ID->setText(information->ID);
|
{
|
||||||
mUI->lbl_Date->setText(information->BirthDate);
|
mUI->mPatientID->setText(information->ID);
|
||||||
mUI->lbl_Name->setText(information->Name);
|
mUI->mPatientBirthday->setText(information->BirthDate);
|
||||||
mUI->lbl_Sex->setText(information->Sex);
|
mUI->mPatientName->setText(information->Name);
|
||||||
mUI->lbl_Acc->setText(information->AccessionNumber);
|
mUI->mPatientGender->setText(information->Sex);
|
||||||
|
mUI->mPaitenAccessionNumber->setText(information->AccessionNumber);
|
||||||
}
|
}
|
||||||
else{
|
else
|
||||||
mUI->lbl_ID->clear();
|
{
|
||||||
mUI->lbl_Date->clear();
|
mUI->mPatientID->clear();
|
||||||
mUI->lbl_Name->clear();
|
mUI->mPatientBirthday->clear();
|
||||||
mUI->lbl_Sex->clear();
|
mUI->mPatientName->clear();
|
||||||
mUI->lbl_Acc->clear();
|
mUI->mPatientGender->clear();
|
||||||
|
mUI->mPaitenAccessionNumber->clear();
|
||||||
}
|
}
|
||||||
if (mInfo){
|
if (mInfo)
|
||||||
|
{
|
||||||
mInfo->deleteLater();
|
mInfo->deleteLater();
|
||||||
}
|
}
|
||||||
mInfo = information;
|
mInfo = information;
|
||||||
}
|
}
|
||||||
|
|
||||||
PatientInformation* PatientInformationForm::getPatientInformation()
|
PatientInformationPointer PatientInformationForm::getPatientInformation()
|
||||||
{
|
{
|
||||||
return mInfo->Copy();
|
return mInfo->Copy();
|
||||||
}
|
}
|
||||||
|
|
||||||
void PatientInformationForm::setProtocol(int type) {
|
|
||||||
mCurrentProtocol = type;
|
|
||||||
switch (type)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
mUI->lbl_Protocol->setText(tr("LEFT ONLY"));
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
default:
|
|
||||||
mUI->lbl_Protocol->setText(tr("RIGHT ONLY"));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int PatientInformationForm::getProtocol()
|
int PatientInformationForm::getProtocol()
|
||||||
{
|
{
|
||||||
return mCurrentProtocol;
|
return mCurrentProtocol;
|
||||||
@@ -70,7 +59,7 @@ int PatientInformationForm::getProtocol()
|
|||||||
|
|
||||||
QString PatientInformationForm::getPatientID()
|
QString PatientInformationForm::getPatientID()
|
||||||
{
|
{
|
||||||
return mUI->lbl_ID->text();
|
return mUI->mPatientID->text();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* PatientInformationForm::getCurrentPatientJsonString(bool empty)
|
const char* PatientInformationForm::getCurrentPatientJsonString(bool empty)
|
||||||
|
|||||||
@@ -14,9 +14,8 @@ class PatientInformationForm : public QWidget
|
|||||||
public:
|
public:
|
||||||
explicit PatientInformationForm(QWidget *parent = nullptr);
|
explicit PatientInformationForm(QWidget *parent = nullptr);
|
||||||
~PatientInformationForm() override;
|
~PatientInformationForm() override;
|
||||||
void setPatientInformation(PatientInformation* information);
|
void setPatientInformation(PatientInformationPointer information);
|
||||||
PatientInformation* getPatientInformation();
|
PatientInformationPointer getPatientInformation();
|
||||||
void setProtocol(int type);
|
|
||||||
int getProtocol();
|
int getProtocol();
|
||||||
|
|
||||||
const char * getCurrentPatientJsonString(bool emptyScan);
|
const char * getCurrentPatientJsonString(bool emptyScan);
|
||||||
@@ -24,7 +23,7 @@ public:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
Ui::PatientInformationForm *mUI;
|
Ui::PatientInformationForm *mUI;
|
||||||
PatientInformation* mInfo = nullptr;
|
PatientInformationPointer mInfo;
|
||||||
int mCurrentProtocol = 0;
|
int mCurrentProtocol = 0;
|
||||||
char * mJsonStr = nullptr;
|
char * mJsonStr = nullptr;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -46,44 +46,108 @@
|
|||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="patientTitle">
|
<widget class="QLabel" name="patientTitle">
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<property name="styleSheet">
|
||||||
|
<string notr="true">background:#0078d8</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Patient Information</string>
|
<string>Current Patient</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="lbl_ID">
|
<widget class="QWidget" name="mPatientInfomation" native="true">
|
||||||
<property name="text">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<string><html><head/><body><p>PatientID:</p></body></html></string>
|
<item row="1" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="mPatientNameLabel">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string>Patient Name:</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="lbl_Name">
|
</widget>
|
||||||
<property name="text">
|
</item>
|
||||||
<string>Someone Somebody</string>
|
<item row="0" column="1">
|
||||||
</property>
|
<widget class="QLabel" name="mPatientID">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string/>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="lbl_Date">
|
</widget>
|
||||||
<property name="text">
|
</item>
|
||||||
<string>2021/11/11</string>
|
<item row="2" column="1">
|
||||||
</property>
|
<widget class="QLabel" name="mPatientGender">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string/>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="lbl_Sex">
|
</widget>
|
||||||
<property name="text">
|
</item>
|
||||||
<string>Female</string>
|
<item row="0" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="mPatientIDLabel">
|
||||||
</widget>
|
<property name="text">
|
||||||
</item>
|
<string>Patient ID:</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QLabel" name="lbl_Acc">
|
</widget>
|
||||||
<property name="text">
|
</item>
|
||||||
<string>Acc# 27812398</string>
|
<item row="3" column="0">
|
||||||
</property>
|
<widget class="QLabel" name="mPatientBirthdayLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Patient Birthday:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QLabel" name="mPatientBirthday">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="0">
|
||||||
|
<widget class="QLabel" name="mPatientGenderLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Patient Gender:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="1">
|
||||||
|
<widget class="QLabel" name="mPaitenAccessionNumber">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="4" column="0">
|
||||||
|
<widget class="QLabel" name="mPatientAccessionNumberLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Patient AccessionNum:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="1" column="1">
|
||||||
|
<widget class="QLabel" name="mPatientName">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="0">
|
||||||
|
<widget class="QLabel" name="mScanProtocolLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Scan Protocol:</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="5" column="1">
|
||||||
|
<widget class="QLabel" name="mScanProtocol">
|
||||||
|
<property name="text">
|
||||||
|
<string/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
@@ -100,20 +164,6 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="protocolTitle">
|
|
||||||
<property name="text">
|
|
||||||
<string>Current Protocol</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="lbl_Protocol">
|
|
||||||
<property name="text">
|
|
||||||
<string>LEFT ONLY</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<spacer name="verticalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
|
|||||||
@@ -32,196 +32,75 @@ namespace{
|
|||||||
}
|
}
|
||||||
|
|
||||||
ScanFormWidget::ScanFormWidget(QWidget* parent)
|
ScanFormWidget::ScanFormWidget(QWidget* parent)
|
||||||
: TabFormWidget(parent)
|
: TabFormWidget(parent)
|
||||||
, mPatInf(new PatientInformationForm(this))
|
, mPatInf(new PatientInformationForm(this))
|
||||||
, mLblProtocol(new QLabel(this))
|
, mAccountButton(new QToolButton(this))
|
||||||
, mBtnLeft(new QToolButton(this))
|
, mShutdownButton(new QToolButton(this))
|
||||||
, mBtnRight(new QToolButton(this))
|
, mWorklistButton(new QToolButton(this))
|
||||||
, mBtnEScan(new QToolButton(this))
|
, mStartScanButton(new QToolButton(this))
|
||||||
, mBtnPreview(new QToolButton(this))
|
, mDrainageButton(new QToolButton(this))
|
||||||
, mBtnStop(new QToolButton(this))
|
, mXYLabel(new QLabel(this))
|
||||||
, mBtnScan(new QToolButton(this))
|
, mZLabel(new QLabel(this))
|
||||||
, mBtnDrainage(new QToolButton(this))
|
, mScanProcessLabel(new QLabel(this))
|
||||||
, mViewer(new QLabel(this))
|
, mDrainageTimer(new QTimer(this))
|
||||||
, mLblPreview(new QLabel(this))
|
|
||||||
, mLblE(new QLabel(this))
|
|
||||||
, mLblParams(new QLabel(this))
|
|
||||||
, mLblE2(new QLabel(this))
|
|
||||||
, mDrainageTimer(new QTimer(this))
|
|
||||||
{
|
{
|
||||||
|
|
||||||
auto layout = new QHBoxLayout(ui->commandWidget);
|
auto commandlayout = new QHBoxLayout(ui->commandWidget);
|
||||||
initProtocolUI(layout);
|
initCommandWidget(commandlayout);
|
||||||
layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
|
|
||||||
addVerticalLine(layout);
|
|
||||||
initScanControlBar(layout);
|
//initScanControlBar(commandlayout);
|
||||||
initScanContent();
|
initScanContent();
|
||||||
initEvents();
|
initEvents();
|
||||||
mDrainageTimer->setSingleShot(true);
|
mDrainageTimer->setSingleShot(true);
|
||||||
connect(mDrainageTimer, &QTimer::timeout, this, [this]()
|
connect(mDrainageTimer, &QTimer::timeout, this, [this]()
|
||||||
{
|
{
|
||||||
mBtnDrainage->click();
|
mDrainageButton->click();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::initProtocolUI(QHBoxLayout *layout) {
|
void ScanFormWidget::initCommandWidget(QHBoxLayout *layout)
|
||||||
mLblProtocol->setText(tr("Protocol"));
|
{
|
||||||
mLblProtocol->setAlignment(Qt::AlignTop);
|
bool anonymousMode = JsonObject::Instance()->getAnonymousMode();
|
||||||
mLblProtocol->setObjectName("protocolPanelTitle");
|
mAccountButton->setObjectName("btnAccount");
|
||||||
layout->addWidget(mLblProtocol);
|
mAccountButton->setText(tr("Account"));
|
||||||
|
layout->addWidget(mAccountButton);
|
||||||
|
|
||||||
|
mShutdownButton->setObjectName("btnShutDown");
|
||||||
|
mShutdownButton->setText(tr("ShutDown"));
|
||||||
|
layout->addWidget(mShutdownButton);
|
||||||
|
|
||||||
|
mWorklistButton->setObjectName("btnWorklist");
|
||||||
|
mWorklistButton->setText(tr("Worklist"));
|
||||||
|
mWorklistButton->setEnabled(!anonymousMode);
|
||||||
|
layout->addWidget(mWorklistButton);
|
||||||
|
|
||||||
|
mStartScanButton->setObjectName("btnScan");
|
||||||
|
mStartScanButton->setText(tr("Start Scan"));
|
||||||
|
layout->addWidget(mStartScanButton);
|
||||||
|
|
||||||
|
layout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Expanding));
|
||||||
addVerticalLine(layout);
|
addVerticalLine(layout);
|
||||||
mBtnLeft->setObjectName("btnLeft");
|
|
||||||
mBtnRight->setObjectName("btnRight");
|
|
||||||
mBtnLeft->setText(tr("LEFT"));
|
|
||||||
mBtnRight->setText(tr("RIGHT"));
|
|
||||||
layout->addWidget(mBtnLeft);
|
|
||||||
layout->addWidget(mBtnRight);
|
|
||||||
|
|
||||||
auto group = new QButtonGroup(ui->commandWidget);
|
mDrainageButton->setObjectName("btnDrainage");
|
||||||
mBtnLeft->setCheckable(true);
|
mDrainageButton->setCheckable(true);
|
||||||
mBtnLeft->setChecked(true);
|
mDrainageButton->setText(tr("Drainage"));
|
||||||
mBtnRight->setCheckable(true);
|
layout->addWidget(mDrainageButton);
|
||||||
group->addButton(mBtnRight, 1);
|
|
||||||
group->addButton(mBtnLeft, 0);
|
|
||||||
connect(group, SIGNAL(buttonClicked(int)), this, SLOT(protocolChanged(int)));
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScanFormWidget::initScanContent() {
|
connect(mDrainageButton, &QToolButton::clicked, [=](bool aSatus)
|
||||||
auto contentLayout = new QHBoxLayout();
|
|
||||||
ui->contentWidget->setLayout(contentLayout);
|
|
||||||
|
|
||||||
contentLayout->addWidget(mPatInf);
|
|
||||||
auto paramWidget = new QWidget(this);
|
|
||||||
auto broadcastWidget = new QWidget(this);
|
|
||||||
broadcastWidget->setObjectName("broadcastWidget");
|
|
||||||
mViewer->setObjectName("viewer");
|
|
||||||
mViewer->setFixedSize(800, 800);
|
|
||||||
mViewer->setText("");
|
|
||||||
auto viewerLayout = new QHBoxLayout(mViewer);
|
|
||||||
broadcastWidget->setLayout(viewerLayout);
|
|
||||||
viewerLayout->addWidget(mViewer);
|
|
||||||
contentLayout->addWidget(broadcastWidget);
|
|
||||||
paramWidget->setObjectName("paramWidget");
|
|
||||||
auto paramLayout = new QVBoxLayout(paramWidget);
|
|
||||||
mLblPreview->setText(tr("Preview Parameters"));
|
|
||||||
mLblPreview->setObjectName("parameterTitle");
|
|
||||||
paramLayout->addWidget(mLblPreview);
|
|
||||||
mLblE->setWordWrap(true);
|
|
||||||
mLblE->setObjectName("placeholder");
|
|
||||||
mLblE->setText(tr("some settings\n\nparameters\n"));
|
|
||||||
paramLayout->addWidget(mLblE);
|
|
||||||
auto lbl_end = new QLabel(this);
|
|
||||||
lbl_end->setObjectName("endSpaceLine");
|
|
||||||
paramLayout->addWidget(lbl_end);
|
|
||||||
mLblParams->setText(tr("Scan Parameters"));
|
|
||||||
mLblParams->setObjectName("parameterTitle");
|
|
||||||
paramLayout->addWidget(mLblParams);
|
|
||||||
mLblE2->setWordWrap(true);
|
|
||||||
mLblE2->setObjectName("placeholder");
|
|
||||||
mLblE2->setText(tr("some settings\n\nparameters\n"));
|
|
||||||
paramLayout->addWidget(mLblE2);
|
|
||||||
auto lbl_end2 = new QLabel(this);
|
|
||||||
lbl_end2->setObjectName("endSpaceLine");
|
|
||||||
paramLayout->addWidget(lbl_end2);
|
|
||||||
paramLayout->addSpacerItem(new QSpacerItem(20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding));
|
|
||||||
contentLayout->addWidget(paramWidget);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
|
|
||||||
mBtnEScan->setObjectName("btnRefresh");
|
|
||||||
mBtnPreview->setObjectName("btnPreview");
|
|
||||||
mBtnStop->setObjectName("btnStop");
|
|
||||||
mBtnScan->setObjectName("btnScan");
|
|
||||||
mBtnDrainage->setObjectName("btnDrainage");
|
|
||||||
mBtnDrainage->setCheckable(true);
|
|
||||||
|
|
||||||
mBtnEScan->setText(tr("Empty Scan"));
|
|
||||||
mBtnPreview->setText(tr("Preview"));
|
|
||||||
mBtnStop->setText(tr("Stop"));
|
|
||||||
mBtnScan->setText(tr("Scan"));
|
|
||||||
mBtnDrainage->setText(tr("Drainage"));
|
|
||||||
|
|
||||||
mBtnScan->setEnabled(false);
|
|
||||||
mBtnEScan->setEnabled(false);
|
|
||||||
mBtnPreview->setEnabled(false);
|
|
||||||
mBtnStop->setEnabled(false);
|
|
||||||
|
|
||||||
layout->addWidget(mBtnEScan);
|
|
||||||
layout->addWidget(mBtnPreview);
|
|
||||||
layout->addWidget(mBtnStop);
|
|
||||||
layout->addWidget(mBtnScan);
|
|
||||||
layout->addWidget(mBtnDrainage);
|
|
||||||
|
|
||||||
connect(mBtnEScan, &QToolButton::clicked, [=]() {
|
|
||||||
int result = DialogManager::Default()->requestAlertMessage(tr("Please make sure the holder is only contain water!"),DialogButtonMode::OkAndCancel,tr("Confirm Scan"));
|
|
||||||
if (result != QDialog::Accepted)return;
|
|
||||||
QString patientInf(mPatInf->getCurrentPatientJsonString(true));
|
|
||||||
LOG_USER_OPERATION("Start Empty Scan")
|
|
||||||
EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf));
|
|
||||||
});
|
|
||||||
connect(mBtnPreview, &QToolButton::clicked, [=]() {
|
|
||||||
LOG_USER_OPERATION(QString("Start Preview, ID: %1").arg(mPatInf->getPatientID()))
|
|
||||||
EventCenter::Default()->triggerEvent(RequestPreviewScan, nullptr, nullptr);
|
|
||||||
|
|
||||||
});
|
|
||||||
connect(DeviceManager::Default(), &DeviceManager::startPreviewScanResult, [this](bool aIsSucessful)
|
|
||||||
{
|
{
|
||||||
if(!aIsSucessful)
|
|
||||||
{
|
|
||||||
setPreviewing(false);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
connect(DeviceManager::Default(), &DeviceManager::startPumpControlResult, [this](bool aIsSucessful)
|
|
||||||
{
|
|
||||||
mBtnDrainage->setEnabled(true);
|
|
||||||
if(!aIsSucessful)
|
|
||||||
{
|
|
||||||
mDrainageTimer->stop();
|
|
||||||
bool isChecked = mBtnDrainage->isChecked();
|
|
||||||
mBtnDrainage->setChecked(!isChecked);
|
|
||||||
if(isChecked)
|
|
||||||
{
|
|
||||||
mBtnDrainage->setText(tr("Drainage"));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mBtnDrainage->setText(tr("Drainaging"));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
connect(mBtnScan, &QToolButton::clicked, [=]() {
|
|
||||||
if(JsonObject::Instance()->getScanConfirm())
|
|
||||||
{
|
|
||||||
int ret = DialogManager::Default()->requestPatientConfirm(mPatInf->getPatientInformation(),mPatInf->getProtocol());
|
|
||||||
if (ret != QDialog::Accepted) return;
|
|
||||||
}
|
|
||||||
QString patientInf(mPatInf->getCurrentPatientJsonString(false));
|
|
||||||
LOG_USER_OPERATION(QString("Start Scan, ID: %1").arg(mPatInf->getPatientID()))
|
|
||||||
if (!DeviceManager::Default()->hasValidEmptyScan()){
|
|
||||||
QString msg(tr("No refresh data exists, please do Refresh operation first."));
|
|
||||||
EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf));
|
|
||||||
});
|
|
||||||
connect(mBtnStop, &QToolButton::clicked, [=]() {
|
|
||||||
LOG_USER_OPERATION("Stop Preview")
|
|
||||||
EventCenter::Default()->triggerEvent(RequestPreviewStop, nullptr, nullptr);
|
|
||||||
});
|
|
||||||
connect(mBtnDrainage, &QToolButton::clicked, [=](bool aSatus) {
|
|
||||||
//Drainage
|
//Drainage
|
||||||
if(aSatus && DialogManager::Default()->requestAlertMessage(tr("Make sure to open the drain valve ?"), DialogButtonMode::OkAndCancel, tr("Confirm Drainage")) == QDialog::Rejected)
|
if(aSatus && DialogManager::Default()->requestAlertMessage(tr("Make sure to open the drain valve ?"), DialogButtonMode::OkAndCancel, tr("Confirm Drainage")) == QDialog::Rejected)
|
||||||
{
|
{
|
||||||
mBtnDrainage->setChecked(!aSatus);
|
mDrainageButton->setChecked(!aSatus);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mBtnDrainage->setEnabled(false);
|
mDrainageButton->setEnabled(false);
|
||||||
if(aSatus == true)
|
if(aSatus == true)
|
||||||
{
|
{
|
||||||
mDrainageTimer->start(DRAINAGE_TIME);
|
mDrainageTimer->start(DRAINAGE_TIME);
|
||||||
QString code = "1";
|
QString code = "1";
|
||||||
mBtnDrainage->setText(tr("Drainaging"));
|
mDrainageButton->setText(tr("Drainaging"));
|
||||||
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
||||||
LOG_USER_OPERATION("Perform Drainage");
|
LOG_USER_OPERATION("Perform Drainage");
|
||||||
}
|
}
|
||||||
@@ -229,30 +108,159 @@ void ScanFormWidget::initScanControlBar(QHBoxLayout *layout){
|
|||||||
{
|
{
|
||||||
mDrainageTimer->stop();
|
mDrainageTimer->stop();
|
||||||
QString code = "0";
|
QString code = "0";
|
||||||
mBtnDrainage->setText(tr("Drainage"));
|
mDrainageButton->setText(tr("Drainage"));
|
||||||
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
EventCenter::Default()->triggerEvent(RequestDrainage, nullptr, (QObject*)(&code));
|
||||||
LOG_USER_OPERATION("Stop Drainage");
|
LOG_USER_OPERATION("Stop Drainage");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
connect(DeviceManager::Default(), &DeviceManager::startPumpControlResult, [this](bool aIsSucessful)
|
||||||
|
{
|
||||||
|
mDrainageButton->setEnabled(true);
|
||||||
|
if(!aIsSucessful)
|
||||||
|
{
|
||||||
|
mDrainageTimer->stop();
|
||||||
|
bool isChecked = mDrainageButton->isChecked();
|
||||||
|
mDrainageButton->setChecked(!isChecked);
|
||||||
|
if(isChecked)
|
||||||
|
{
|
||||||
|
mDrainageButton->setText(tr("Drainage"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mDrainageButton->setText(tr("Drainaging"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(mAccountButton, &QToolButton::clicked, DialogManager::Default(),&DialogManager::requestEditSelfAccount);
|
||||||
|
|
||||||
|
connect(mShutdownButton, &QToolButton::clicked, []()
|
||||||
|
{
|
||||||
|
if(DialogManager::Default()->requestAlertMessage(QString(tr("Shut down now ?")), DialogButtonMode::OkAndCancel,tr("Shut Down")) == QDialog::Accepted)
|
||||||
|
{
|
||||||
|
LOG_USER_OPERATION("Shut Down")
|
||||||
|
EventCenter::Default()->triggerEvent(GUIEvents::RequestShutdown, nullptr, nullptr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(mWorklistButton, &QToolButton::clicked, [&]()
|
||||||
|
{
|
||||||
|
DialogManager::Default()->requestGetWorkList();
|
||||||
|
});
|
||||||
|
|
||||||
|
connect(EventCenter::Default(), &EventCenter::AnonymousModeChanged, this, &ScanFormWidget::updateDataByAnonymousMode);
|
||||||
|
|
||||||
|
|
||||||
|
// auto group = new QButtonGroup(ui->commandWidget);
|
||||||
|
// mBtnLeft->setCheckable(true);
|
||||||
|
// mBtnLeft->setChecked(true);
|
||||||
|
// mBtnRight->setCheckable(true);
|
||||||
|
// group->addButton(mBtnRight, 1);
|
||||||
|
// group->addButton(mBtnLeft, 0);
|
||||||
|
// connect(group, SIGNAL(buttonClicked(int)), this, SLOT(protocolChanged(int)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::protocolChanged(int type) {
|
void ScanFormWidget::initScanContent()
|
||||||
mPatInf->setProtocol(type);
|
{
|
||||||
|
|
||||||
|
QHBoxLayout* contentLayout = new QHBoxLayout(ui->contentWidget);
|
||||||
|
contentLayout->addWidget(mPatInf);
|
||||||
|
|
||||||
|
QWidget* scanProcessWidget = new QWidget(this);
|
||||||
|
scanProcessWidget->setObjectName("ScanProcessWidget");
|
||||||
|
contentLayout->addWidget(scanProcessWidget);
|
||||||
|
|
||||||
|
QVBoxLayout* scanProcessLayout = new QVBoxLayout(scanProcessWidget);
|
||||||
|
mScanProcessLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
|
||||||
|
mScanProcessLabel->setAlignment(Qt::AlignCenter);
|
||||||
|
mScanProcessLabel->setObjectName("ScanProcessInformation");
|
||||||
|
mScanProcessLabel->setText(tr("Please confirm checking patient information to start the process"));
|
||||||
|
scanProcessLayout->addWidget(mScanProcessLabel);
|
||||||
|
QWidget* displayWidget = new QWidget(this);
|
||||||
|
scanProcessLayout->addWidget(displayWidget);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
QHBoxLayout* displayLayout = new QHBoxLayout(displayWidget);
|
||||||
|
QWidget* xyWidget = new QWidget(this);
|
||||||
|
xyWidget->setObjectName("broadcastWidget");
|
||||||
|
QHBoxLayout* xyLayout = new QHBoxLayout(xyWidget);
|
||||||
|
xyLayout->addWidget(mXYLabel);
|
||||||
|
displayLayout->addWidget(xyWidget);
|
||||||
|
|
||||||
|
QWidget* zWidget = new QWidget(this);
|
||||||
|
zWidget->setObjectName("broadcastWidget");
|
||||||
|
QHBoxLayout* zLayout = new QHBoxLayout(zWidget);
|
||||||
|
zLayout->addWidget(mZLabel);
|
||||||
|
displayLayout->addWidget(zWidget);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScanFormWidget::initScanControlBar(QHBoxLayout *layout)
|
||||||
|
{
|
||||||
|
// connect(mBtnEScan, &QToolButton::clicked, [=]() {
|
||||||
|
// int result = DialogManager::Default()->requestAlertMessage(tr("Please make sure the holder is only contain water!"),DialogButtonMode::OkAndCancel,tr("Confirm Scan"));
|
||||||
|
// if (result != QDialog::Accepted)return;
|
||||||
|
// QString patientInf(mPatInf->getCurrentPatientJsonString(true));
|
||||||
|
// LOG_USER_OPERATION("Start Empty Scan")
|
||||||
|
// EventCenter::Default()->triggerEvent(RequestEmptyScan, nullptr, (QObject*)(&patientInf));
|
||||||
|
// });
|
||||||
|
// connect(mBtnPreview, &QToolButton::clicked, [=]() {
|
||||||
|
// LOG_USER_OPERATION(QString("Start Preview, ID: %1").arg(mPatInf->getPatientID()))
|
||||||
|
// EventCenter::Default()->triggerEvent(RequestPreviewScan, nullptr, nullptr);
|
||||||
|
|
||||||
|
// });
|
||||||
|
connect(DeviceManager::Default(), &DeviceManager::startPreviewScanResult, [this](bool aIsSucessful)
|
||||||
|
{
|
||||||
|
if(!aIsSucessful)
|
||||||
|
{
|
||||||
|
setPreviewing(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// connect(mBtnScan, &QToolButton::clicked, [=]() {
|
||||||
|
// if(JsonObject::Instance()->getScanConfirm())
|
||||||
|
// {
|
||||||
|
// int ret = DialogManager::Default()->requestPatientConfirm(mPatInf->getPatientInformation(),mPatInf->getProtocol());
|
||||||
|
// if (ret != QDialog::Accepted) return;
|
||||||
|
// }
|
||||||
|
// QString patientInf(mPatInf->getCurrentPatientJsonString(false));
|
||||||
|
// LOG_USER_OPERATION(QString("Start Scan, ID: %1").arg(mPatInf->getPatientID()))
|
||||||
|
// if (!DeviceManager::Default()->hasValidEmptyScan()){
|
||||||
|
// QString msg(tr("No refresh data exists, please do Refresh operation first."));
|
||||||
|
// EventCenter::Default()->triggerEvent(DeviceErrorRaise, nullptr, (QObject*)(&msg));
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// EventCenter::Default()->triggerEvent(RequestPatientScan, nullptr, (QObject*)(&patientInf));
|
||||||
|
// });
|
||||||
|
// connect(mBtnStop, &QToolButton::clicked, [=]() {
|
||||||
|
// LOG_USER_OPERATION("Stop Preview")
|
||||||
|
// EventCenter::Default()->triggerEvent(RequestPreviewStop, nullptr, nullptr);
|
||||||
|
// });
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScanFormWidget::protocolChanged(int type)
|
||||||
|
{
|
||||||
LOG_USER_OPERATION(QString("Select Laterality %1").arg(type == 0 ? "Left" : "Right"));
|
LOG_USER_OPERATION(QString("Select Laterality %1").arg(type == 0 ? "Left" : "Right"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::setPreviewing(bool val) {
|
void ScanFormWidget::setPreviewing(bool val)
|
||||||
mViewer->setVisible(val);
|
{
|
||||||
mBtnPreview->setCheckable(val);
|
// mBtnPreview->setCheckable(val);
|
||||||
mBtnPreview->setChecked(val);
|
// mBtnPreview->setChecked(val);
|
||||||
mBtnPreview->setEnabled(!val);
|
// mBtnPreview->setEnabled(!val);
|
||||||
mBtnEScan->setEnabled(!val);
|
// mBtnEScan->setEnabled(!val);
|
||||||
mBtnScan->setEnabled(!val);
|
// mBtnScan->setEnabled(!val);
|
||||||
mBtnDrainage->setEnabled(!val);
|
mDrainageButton->setEnabled(!val);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::renderLoading() {
|
void ScanFormWidget::renderLoading()
|
||||||
|
{
|
||||||
setPreviewing(true);
|
setPreviewing(true);
|
||||||
|
|
||||||
uchar c_data[PREVIEW_ROW][PREVIEW_COL];
|
uchar c_data[PREVIEW_ROW][PREVIEW_COL];
|
||||||
@@ -260,7 +268,6 @@ void ScanFormWidget::renderLoading() {
|
|||||||
memset(data_ptr, 0, PREVIEW_COL);
|
memset(data_ptr, 0, PREVIEW_COL);
|
||||||
}
|
}
|
||||||
QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8);
|
QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8);
|
||||||
mViewer->setFixedSize(800, 800);
|
|
||||||
QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation);
|
QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation);
|
||||||
QPainter painter(&pic);
|
QPainter painter(&pic);
|
||||||
QPen pen;
|
QPen pen;
|
||||||
@@ -273,10 +280,10 @@ void ScanFormWidget::renderLoading() {
|
|||||||
pen.setColor(QColor(255, 255, 0));
|
pen.setColor(QColor(255, 255, 0));
|
||||||
painter.setPen(pen);
|
painter.setPen(pen);
|
||||||
painter.drawText(400 - 13 * 5, 400 + 13, "Loading...");
|
painter.drawText(400 - 13 * 5, 400 + 13, "Loading...");
|
||||||
mViewer->setPixmap(pic);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::renderPreviewData(const QObject* /*sender*/,const QObject *data) {
|
void ScanFormWidget::renderPreviewData(const QObject* /*sender*/,const QObject *data)
|
||||||
|
{
|
||||||
if (!data)return;
|
if (!data)return;
|
||||||
auto array = (QByteArray*)data;
|
auto array = (QByteArray*)data;
|
||||||
auto raw_dataptr = (uchar*)array->data();
|
auto raw_dataptr = (uchar*)array->data();
|
||||||
@@ -286,7 +293,6 @@ void ScanFormWidget::renderPreviewData(const QObject* /*sender*/,const QObject *
|
|||||||
raw_dataptr += PREVIEW_COL;
|
raw_dataptr += PREVIEW_COL;
|
||||||
}
|
}
|
||||||
QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8);
|
QImage img(c_data[0], PREVIEW_COL, PREVIEW_ROW, QImage::Format_Grayscale8);
|
||||||
mViewer->setFixedSize(800, 800);
|
|
||||||
QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation);
|
QPixmap pic = QPixmap::fromImage(img).scaledToHeight(800, Qt::SmoothTransformation);
|
||||||
QPainter painter(&pic);
|
QPainter painter(&pic);
|
||||||
QPen pen;
|
QPen pen;
|
||||||
@@ -311,25 +317,33 @@ void ScanFormWidget::renderPreviewData(const QObject* /*sender*/,const QObject *
|
|||||||
painter.drawText(400 - 13, borderSpacing + 30, "H");
|
painter.drawText(400 - 13, borderSpacing + 30, "H");
|
||||||
painter.drawText(400 - 13, 800 - borderSpacing - 13, "F");
|
painter.drawText(400 - 13, 800 - borderSpacing - 13, "F");
|
||||||
painter.drawText(borderSpacing + 6, borderSpacing + 30, "ROI");
|
painter.drawText(borderSpacing + 6, borderSpacing + 30, "ROI");
|
||||||
mViewer->setPixmap(pic);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::initEvents() {//Events---------------------------------------------------------------
|
void ScanFormWidget::initEvents()
|
||||||
|
{
|
||||||
|
//Events---------------------------------------------------------------
|
||||||
connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) {
|
connect(EventCenter::Default(), &EventCenter::PatientSelected, [=](QObject* sender, QObject* data) {
|
||||||
if (data)
|
if (data)
|
||||||
{
|
{
|
||||||
mBtnScan->setEnabled(true);
|
PatientInformation* patientInfo = (PatientInformation*)data;
|
||||||
mBtnEScan->setEnabled(true);
|
DialogResult result = DialogManager::Default()->reuqestConfirmStartScan(patientInfo);
|
||||||
mBtnPreview->setEnabled(true);
|
if(result.ResultCode == QDialog::Accepted)
|
||||||
mBtnStop->setEnabled(true);
|
{
|
||||||
|
|
||||||
|
mPatInf->setPatientInformation(patientInfo->Copy());
|
||||||
|
}
|
||||||
|
|
||||||
|
// mBtnScan->setEnabled(true);
|
||||||
|
// mBtnEScan->setEnabled(true);
|
||||||
|
// mBtnPreview->setEnabled(true);
|
||||||
|
// mBtnStop->setEnabled(true);
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
mBtnScan->setEnabled(false);
|
// mBtnScan->setEnabled(false);
|
||||||
mBtnEScan->setEnabled(false);
|
// mBtnEScan->setEnabled(false);
|
||||||
mBtnPreview->setEnabled(false);
|
// mBtnPreview->setEnabled(false);
|
||||||
mBtnStop->setEnabled(false);
|
// mBtnStop->setEnabled(false);
|
||||||
}
|
}
|
||||||
mPatInf->setPatientInformation((PatientInformation*)data);
|
|
||||||
});
|
});
|
||||||
connect(EventCenter::Default(), &EventCenter::ResponseStopPreview, [=](QObject* sender, QObject* data) {
|
connect(EventCenter::Default(), &EventCenter::ResponseStopPreview, [=](QObject* sender, QObject* data) {
|
||||||
setPreviewing(false);
|
setPreviewing(false);
|
||||||
@@ -342,19 +356,19 @@ void ScanFormWidget::initEvents() {//Events-------------------------------------
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::reloadLanguage(){
|
void ScanFormWidget::reloadLanguage()
|
||||||
mBtnLeft->setText(tr("LEFT"));
|
{
|
||||||
mBtnRight->setText(tr("RIGHT"));
|
mAccountButton->setText(tr("Account"));
|
||||||
mBtnEScan->setText(tr("Empty Scan"));
|
mShutdownButton->setText(tr("ShutDown"));
|
||||||
mBtnPreview->setText(tr("Preview"));
|
mWorklistButton->setText(tr("Worklist"));
|
||||||
mBtnStop->setText(tr("Stop"));
|
mStartScanButton->setText(tr("Start Scan"));
|
||||||
mBtnScan->setText(tr("Scan"));
|
mDrainageButton->isChecked() ? mDrainageButton->setText(tr("Drainaging")) : mDrainageButton->setText(tr("Drainage"));
|
||||||
mLblProtocol->setText(tr("Protocol"));
|
}
|
||||||
mLblPreview->setText(tr("Preview Parameters"));
|
|
||||||
mLblPreview->setText(tr("Scan Parameters"));
|
void ScanFormWidget::updateDataByAnonymousMode()
|
||||||
mLblE->setText(tr("some settings\n\nparameters\n"));
|
{
|
||||||
mLblE2->setText(tr("some settings\n\nparameters\n"));
|
bool anonymousMode = JsonObject::Instance()->getAnonymousMode();
|
||||||
mBtnDrainage->isChecked() ? mBtnDrainage->setText(tr("Drainaging")) : mBtnDrainage->setText(tr("Drainage"));
|
mWorklistButton->setEnabled(!anonymousMode);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScanFormWidget::keyPressEvent(QKeyEvent* aEvent)
|
void ScanFormWidget::keyPressEvent(QKeyEvent* aEvent)
|
||||||
|
|||||||
@@ -21,21 +21,16 @@ private:
|
|||||||
PatientInformationForm* mPatInf= nullptr;
|
PatientInformationForm* mPatInf= nullptr;
|
||||||
bool mUnInited = true;
|
bool mUnInited = true;
|
||||||
int mCurrentFrame = 0;
|
int mCurrentFrame = 0;
|
||||||
QLabel* mLblProtocol;
|
QToolButton* mAccountButton;
|
||||||
QToolButton* mBtnLeft;
|
QToolButton* mShutdownButton;
|
||||||
QToolButton* mBtnRight;
|
QToolButton* mWorklistButton;
|
||||||
QToolButton* mBtnEScan;
|
QToolButton* mStartScanButton;
|
||||||
QToolButton* mBtnPreview;
|
QToolButton* mDrainageButton;
|
||||||
QToolButton* mBtnStop;
|
QLabel* mXYLabel;
|
||||||
QToolButton* mBtnScan;
|
QLabel* mZLabel;
|
||||||
QToolButton* mBtnDrainage;
|
QLabel* mScanProcessLabel;
|
||||||
QLabel* mViewer;
|
|
||||||
QLabel* mLblPreview;
|
|
||||||
QLabel* mLblE;
|
|
||||||
QLabel* mLblParams;
|
|
||||||
QLabel* mLblE2;
|
|
||||||
QTimer* mDrainageTimer;
|
QTimer* mDrainageTimer;
|
||||||
void initProtocolUI(QHBoxLayout *layout);
|
void initCommandWidget(QHBoxLayout *layout);
|
||||||
void initScanControlBar(QHBoxLayout *layout);
|
void initScanControlBar(QHBoxLayout *layout);
|
||||||
void initScanContent();
|
void initScanContent();
|
||||||
void renderLoading();
|
void renderLoading();
|
||||||
@@ -43,6 +38,7 @@ private:
|
|||||||
void reloadLanguage();
|
void reloadLanguage();
|
||||||
private slots:
|
private slots:
|
||||||
void protocolChanged(int type);
|
void protocolChanged(int type);
|
||||||
|
void updateDataByAnonymousMode();
|
||||||
|
|
||||||
void initEvents();
|
void initEvents();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ enum PatientInformationEnum{
|
|||||||
* @brief this class was designed to be a edit form,
|
* @brief this class was designed to be a edit form,
|
||||||
* but now has been change to a detail display class.
|
* but now has been change to a detail display class.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
class PatientInformation:public QObject{
|
class PatientInformation:public QObject{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
@@ -47,9 +48,9 @@ public:
|
|||||||
this->AddDate = other.AddDate;
|
this->AddDate = other.AddDate;
|
||||||
}
|
}
|
||||||
QString ScheduledStartDate;
|
QString ScheduledStartDate;
|
||||||
PatientInformation* Copy()
|
QSharedPointer<PatientInformation> Copy()
|
||||||
{
|
{
|
||||||
PatientInformation* n=new PatientInformation;
|
QSharedPointer<PatientInformation> n= QSharedPointer<PatientInformation>(new PatientInformation);
|
||||||
n->PatientUID = this->PatientUID;
|
n->PatientUID = this->PatientUID;
|
||||||
n->ID = this->ID;
|
n->ID = this->ID;
|
||||||
n->Name = this->Name;
|
n->Name = this->Name;
|
||||||
@@ -61,5 +62,7 @@ public:
|
|||||||
return n;
|
return n;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef QSharedPointer<PatientInformation> PatientInformationPointer;
|
typedef QSharedPointer<PatientInformation> PatientInformationPointer;
|
||||||
|
|
||||||
#endif //GUI_PATIENTINFORMATION_H
|
#endif //GUI_PATIENTINFORMATION_H
|
||||||
|
|||||||
@@ -175,7 +175,7 @@ void SelectFormWidget::delPatient() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SelectFormWidget::selectPatient() {
|
void SelectFormWidget::selectPatient() {
|
||||||
EventCenter::Default()->triggerEvent(PatientSelected, nullptr, patientDetailForm->getPatientInformation()->Copy());
|
EventCenter::Default()->triggerEvent(PatientSelected, nullptr, (QObject*)patientDetailForm->getPatientInformation());
|
||||||
selectedPatientUID = patientDetailForm->getPatientInformation()->PatientUID;
|
selectedPatientUID = patientDetailForm->getPatientInformation()->PatientUID;
|
||||||
LOG_USER_OPERATION(QString("Select Patient, ID: %1").arg(patientDetailForm->getPatientInformation()->ID))
|
LOG_USER_OPERATION(QString("Select Patient, ID: %1").arg(patientDetailForm->getPatientInformation()->ID))
|
||||||
}
|
}
|
||||||
@@ -255,7 +255,7 @@ void SelectFormWidget::initDataModel() {
|
|||||||
mModel->setData(mModel->index(0,7),"");
|
mModel->setData(mModel->index(0,7),"");
|
||||||
}
|
}
|
||||||
|
|
||||||
mModel->setHeaderData(1, Qt::Horizontal, "ID");
|
mModel->setHeaderData(1, Qt::Horizontal, tr("ID"));
|
||||||
mModel->setHeaderData(2, Qt::Horizontal, tr("AccessionNumber"));
|
mModel->setHeaderData(2, Qt::Horizontal, tr("AccessionNumber"));
|
||||||
mModel->setHeaderData(3, Qt::Horizontal, tr("Name"));
|
mModel->setHeaderData(3, Qt::Horizontal, tr("Name"));
|
||||||
mModel->setHeaderData(4, Qt::Horizontal, tr("Birth Date"));
|
mModel->setHeaderData(4, Qt::Horizontal, tr("Birth Date"));
|
||||||
|
|||||||
@@ -718,7 +718,6 @@ QLabel#parameterTitle{
|
|||||||
QLabel#protocolTitle,#patientTitle{
|
QLabel#protocolTitle,#patientTitle{
|
||||||
font-size: 26px;
|
font-size: 26px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-bottom: 1px solid silver
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QLabel#endSpaceLine {
|
QLabel#endSpaceLine {
|
||||||
@@ -1210,3 +1209,12 @@ QWidget#SystemCorrectionForm QLabel#SystemCorrectionTitle {
|
|||||||
font-size: 30px;
|
font-size: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QWidget#ScanProcessWidget QLabel#ScanProcessInformation{
|
||||||
|
height: 100px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -429,12 +429,12 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Cancle</source>
|
<source>Confirm stop the scan.
|
||||||
|
</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Confirm stop the scan.
|
<source>Cancel</source>
|
||||||
</source>
|
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
@@ -1018,18 +1018,10 @@
|
|||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PatientDetailForm</name>
|
<name>PatientDetailForm</name>
|
||||||
<message>
|
|
||||||
<source>Form</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Name</source>
|
<source>Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Date Of Birth</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Gender</source>
|
<source>Gender</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@@ -1046,46 +1038,10 @@
|
|||||||
<source>Other</source>
|
<source>Other</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Patient Information</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>111</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source><html><head/><body><p><br/></p></body></html></source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Edit</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>PatientID: </source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Add Date: </source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>AccNo: </source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Scan with this Patient?</source>
|
<source>Scan with this Patient?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Protocol: </source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Left</source>
|
<source>Left</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@@ -1094,6 +1050,30 @@
|
|||||||
<source>Right</source>
|
<source>Right</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Patient Detail</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Birth Date</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PatientID</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>AccNo</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Add Date</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Protocol</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PatientInformationForm</name>
|
<name>PatientInformationForm</name>
|
||||||
@@ -1102,40 +1082,32 @@
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Patient Information</source>
|
<source>Current Patient</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source><html><head/><body><p>PatientID:</p></body></html></source>
|
<source>Patient Name:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Name:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Someone Somebody</source>
|
<source>Patient Birthday:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Brith Date:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>2021/11/11</source>
|
<source>Patient Gender:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Gender:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Female</source>
|
<source>Patient AccessionNum:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">AccNo:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Acc# 27812398</source>
|
<source>Scan Protocol:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">Protocol:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Current Protocol</source>
|
<source>Patient ID:</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished">ID:</translation>
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>LEFT ONLY</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RIGHT ONLY</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@@ -1155,18 +1127,6 @@
|
|||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ReconFormWidget</name>
|
<name>ReconFormWidget</name>
|
||||||
<message>
|
|
||||||
<source>Discard</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Delete</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Refresh</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Scan Time</source>
|
<source>Scan Time</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@@ -1195,30 +1155,6 @@
|
|||||||
<source>Operator Name</source>
|
<source>Operator Name</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>No data selected.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Alert</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Can not delete this record before pacs succeed.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Delete recon record with patient "%1" ?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Confirm</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Can't delete selected record , db error!</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ReconSettingsDialog</name>
|
<name>ReconSettingsDialog</name>
|
||||||
@@ -1308,69 +1244,14 @@
|
|||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ScanFormWidget</name>
|
<name>ScanFormWidget</name>
|
||||||
<message>
|
|
||||||
<source>Protocol</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Preview</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Stop</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Scan</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Preview Parameters</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>some settings
|
|
||||||
|
|
||||||
parameters
|
|
||||||
</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Scan Parameters</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>LEFT</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>RIGHT</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Empty Scan</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Drainage</source>
|
<source>Drainage</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>No refresh data exists, please do Refresh operation first.</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Drainaging</source>
|
<source>Drainaging</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>Please make sure the holder is only contain water!</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Confirm Scan</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Confirm Drainage</source>
|
<source>Confirm Drainage</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@@ -1379,6 +1260,34 @@ parameters
|
|||||||
<source>Make sure to open the drain valve ?</source>
|
<source>Make sure to open the drain valve ?</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Account</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ShutDown</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Worklist</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Start Scan</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Please confirm checking patient information to start the process</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Shut down now ?</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Shut Down</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ScanSearchCriteriaForm</name>
|
<name>ScanSearchCriteriaForm</name>
|
||||||
@@ -1446,17 +1355,17 @@ parameters
|
|||||||
<source>Retrieve</source>
|
<source>Retrieve</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Manual Refresh</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Refresh</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SelectFormWidget</name>
|
<name>SelectFormWidget</name>
|
||||||
<message>
|
|
||||||
<source>Account</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Worklist</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>Add</source>
|
<source>Add</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
@@ -1505,22 +1414,26 @@ parameters
|
|||||||
<source>Can't delete selected Patient , db submit error!</source>
|
<source>Can't delete selected Patient , db submit error!</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>ShutDown</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Shut down now ?</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
|
||||||
<source>Shut Down</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
<message>
|
<message>
|
||||||
<source>AccessionNumber</source>
|
<source>AccessionNumber</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Patient Information Manage</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Edit</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Delete</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>ID</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SettingFormWidget</name>
|
<name>SettingFormWidget</name>
|
||||||
@@ -1560,6 +1473,69 @@ parameters
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>StartScanProcessDialog</name>
|
||||||
|
<message>
|
||||||
|
<source>Dialog</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Patien Information</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PatientBirth:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PatientGender:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PatientName:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>PatientID:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Protocol Settings</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>left->right</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>right->left</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>only left</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>only right</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>start Scan</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Cancel</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>AccessionNumber:</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source><html><head/><body><p><br/></p></body></html></source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SystemCorrectionForm</name>
|
<name>SystemCorrectionForm</name>
|
||||||
<message>
|
<message>
|
||||||
@@ -1590,6 +1566,14 @@ parameters
|
|||||||
<source>Excute empty scan</source>
|
<source>Excute empty scan</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Please make sure the holder is only contain water!</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Confirm Scan</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>SystemSettingForm</name>
|
<name>SystemSettingForm</name>
|
||||||
@@ -1646,10 +1630,6 @@ parameters
|
|||||||
<source>浙江衡玖医疗科技</source>
|
<source>浙江衡玖医疗科技</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
|
||||||
<source>°C</source>
|
|
||||||
<translation type="unfinished"></translation>
|
|
||||||
</message>
|
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>UserOperationLogForm</name>
|
<name>UserOperationLogForm</name>
|
||||||
@@ -1658,6 +1638,29 @@ parameters
|
|||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>WarningMessageWidget</name>
|
||||||
|
<message>
|
||||||
|
<source>System is working properly.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No message.</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>System Status</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>System Notifications</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Clear</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>WorklistSettingsDialog</name>
|
<name>WorklistSettingsDialog</name>
|
||||||
<message>
|
<message>
|
||||||
|
|||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user