Add accession number and fix a problem with create recon record automaticly.
This commit is contained in:
@@ -203,6 +203,7 @@ void DeviceManager::startScan(const QString& json, bool empty)
|
||||
mIsEmptyScan = empty;
|
||||
QJsonObject patientInfo = QJsonDocument::fromJson(json.toUtf8()).object()["Patient Info"].toObject();
|
||||
mCurrentPatientID = patientInfo["PatientID"].toString();
|
||||
mCurrentAccessionNumber = patientInfo["AccessionNumber"].toString();
|
||||
mCurrentPatientName = patientInfo["PatientName"].toString();
|
||||
mCurrentLaterality = patientInfo["Laterality"].toString();
|
||||
mCurrentOperatorName = patientInfo["OperatorName"].toString();
|
||||
@@ -631,10 +632,11 @@ void DeviceManager::insertEmptyScanRecord()
|
||||
|
||||
void DeviceManager::insertScanRecord()
|
||||
{
|
||||
QString sql = QString("INSERT INTO Scan (ScanID, ReferenceID, PatientID, PatientName, ScanDateTime, Laterality, OperatorName, State) VALUES ('%1','%2','%3','%4','%5','%6','%7',%8)")
|
||||
QString sql = QString("INSERT INTO Scan (ScanID, ReferenceID, PatientID, AccessionNumber, PatientName, ScanDateTime, Laterality, OperatorName, State) VALUES ('%1','%2','%3','%4','%5','%6','%7','%8', %9)")
|
||||
.arg(mCurrentScanMeasurementID)
|
||||
.arg(mCurrentEmptyMeasurementID)
|
||||
.arg(mCurrentPatientID)
|
||||
.arg(mCurrentAccessionNumber)
|
||||
.arg(mCurrentPatientName)
|
||||
.arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss"))
|
||||
.arg(mCurrentLaterality)
|
||||
@@ -725,7 +727,6 @@ void DeviceManager::processTransferProgress(const QString& aProgress)
|
||||
QString sql = QString("UPDATE %1 set State = 200 where ScanID = '%2'")
|
||||
.arg(mIsTransferEmptyScan ? "EScan" : "Scan")
|
||||
.arg(mCurrentTransferMeasurementID);
|
||||
createScanReconRecord(mCurrentTransferMeasurementID, mCurrentTransferPatientID, mCurrentEmptyMeasurementID);
|
||||
mIsTransfering = false;
|
||||
mCurrentTransferMeasurementID.clear();
|
||||
if(!SQLHelper::exec(sql))
|
||||
@@ -735,6 +736,7 @@ void DeviceManager::processTransferProgress(const QString& aProgress)
|
||||
break;
|
||||
}
|
||||
emitInfoCallback("Scan data transfer Succeeded!", MessageLevel::Sucess);
|
||||
startCreateReconRecord();
|
||||
startTransfer();
|
||||
break;
|
||||
}
|
||||
@@ -800,9 +802,16 @@ void DeviceManager::processReconCreateScan(bool aResult, const QString& aScanID,
|
||||
}
|
||||
}
|
||||
|
||||
void DeviceManager::processReconQueryScanState(const QMap<QString, int> aResult)
|
||||
void DeviceManager::processReconQueryScanState(bool aResult, const QVariant& aState)
|
||||
{
|
||||
for(auto itor= aResult.constBegin(); itor != aResult.constEnd(); ++itor)
|
||||
if(!aResult)
|
||||
{
|
||||
emitInfoCallback(aState.toString(), MessageLevel::Error);
|
||||
return;
|
||||
}
|
||||
|
||||
QMap<QString, int> states = aState.value<QMap<QString, int>>();
|
||||
for(auto itor= states.constBegin(); itor != states.constEnd(); ++itor)
|
||||
{
|
||||
QString sql = QString("UPDATE Scan set State = %1 where ScanID = '%2'").arg(itor.value()).arg(itor.key());
|
||||
if(!SQLHelper::exec(sql))
|
||||
@@ -814,15 +823,25 @@ void DeviceManager::processReconQueryScanState(const QMap<QString, int> aResult)
|
||||
emit updateReconStateFinished();
|
||||
}
|
||||
|
||||
void DeviceManager::createScanReconRecord(const QString& aScanID, const QString& aPatientID, const QString& aReferenceID)
|
||||
void DeviceManager::startCreateReconRecord()
|
||||
{
|
||||
if(aPatientID.isEmpty())
|
||||
QString sql = "SELECT ScanID FROM EScan WHERE State < 300 And State >= 200 ORDER BY ScanDateTime ASC";
|
||||
auto result = SQLHelper::queryValues(sql);
|
||||
for (const QVariant &variant : result)
|
||||
{
|
||||
emit createEmptyScanToRecon(aScanID, RECON_TRANSFER_PATH + "/" + aScanID);
|
||||
QString scanid = variant.value<QList<QVariant>>()[0].toString();
|
||||
emit createEmptyScanToRecon(scanid, RECON_TRANSFER_PATH + "/" + scanid);
|
||||
}
|
||||
else
|
||||
|
||||
sql = "SELECT ScanID, ReferenceID, PatientID FROM Scan WHERE State < 300 And State >= 200 ORDER BY ScanDateTime ASC";
|
||||
result = SQLHelper::queryValues(sql);
|
||||
for (const QVariant &variant : result)
|
||||
{
|
||||
emit createScanToRecon(aScanID, aPatientID, aReferenceID, RECON_TRANSFER_PATH + "/" + aScanID);
|
||||
QList<QVariant> record = variant.value<QList<QVariant>>();
|
||||
QString scanID = record[0].toString();
|
||||
QString referenceID = record[1].toString();
|
||||
QString patientID = record[2].toString();;
|
||||
emit createScanToRecon(scanID, patientID, referenceID, RECON_TRANSFER_PATH + "/" + scanID);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -835,12 +854,12 @@ void DeviceManager::initEmptyScanMeasurementID()
|
||||
void DeviceManager::updateReconState()
|
||||
{
|
||||
updateTransferProgress();
|
||||
QString sql = "SELECT ScanID FROM Scan WHERE State != 999";
|
||||
QString sql = "SELECT ScanID FROM Scan WHERE State < 999 And State >= 300";
|
||||
auto result = SQLHelper::queryValues(sql);
|
||||
QStringList scanIDs;
|
||||
for (const QVariant &variant : result)
|
||||
{
|
||||
scanIDs << variant.toString();
|
||||
scanIDs << variant.value<QList<QVariant>>()[0].toString();
|
||||
}
|
||||
|
||||
if(scanIDs.isEmpty())
|
||||
|
||||
@@ -92,7 +92,7 @@ private:
|
||||
void startScan(const QString& json, bool empty = false);
|
||||
void startPreview();
|
||||
void shutdown();
|
||||
void createScanReconRecord(const QString& aScanID, const QString& aPatientID, const QString& aReferenceID);
|
||||
void startCreateReconRecord();
|
||||
|
||||
//-----------------new
|
||||
DeviceStatus getDeviceStatus();
|
||||
@@ -122,7 +122,7 @@ private slots:
|
||||
//Recon
|
||||
void processReconCreateEmptyScan(bool aResult, const QString& aScanID, const QString& aMessage);
|
||||
void processReconCreateScan(bool aResult, const QString& aScanID, const QString& aMessage);
|
||||
void processReconQueryScanState(const QMap<QString, int> aResult);
|
||||
void processReconQueryScanState(bool aResult, const QVariant& aState);
|
||||
//GUI
|
||||
void scanTimeout();
|
||||
|
||||
@@ -158,6 +158,7 @@ private:
|
||||
QString mCurrentEmptyMeasurementID = "";
|
||||
QString mCurrentPatientName = "";
|
||||
QString mCurrentPatientID = "";
|
||||
QString mCurrentAccessionNumber = "";
|
||||
QString mCurrentLaterality = "";
|
||||
QString mCurrentOperatorName = "";
|
||||
QString mCurrentTransferMeasurementID = "";
|
||||
|
||||
Reference in New Issue
Block a user