feat: Add MPPS logic to Scan Procedure

This commit is contained in:
chenhuijun
2024-06-06 13:39:30 +08:00
parent c8904e3ce6
commit eb6413a147
2 changed files with 139 additions and 124 deletions

View File

@@ -1151,17 +1151,25 @@ void DeviceManager::startCreateReconRecord()
emit createEmptyScanToRecon(scanid, RECON_TRANSFER_PATH + "/" + scanid); emit createEmptyScanToRecon(scanid, RECON_TRANSFER_PATH + "/" + scanid);
} }
sql = "SELECT ScanID, ReferenceID, PatientID FROM Scan WHERE State < 300 And State >= 200 ORDER BY ScanDateTime ASC"; sql = "SELECT ScanID, ReferenceID, PatientID, AccessionNumber FROM Scan WHERE State < 300 And State >= 200 ORDER BY ScanDateTime ASC";
result = SQLHelper::queryValues(sql); result = SQLHelper::queryValues(sql);
for (const QVariant &variant : result) for (const QVariant &variant : result)
{ {
QList<QVariant> record = variant.value<QList<QVariant>>(); QList<QVariant> record = variant.value<QList<QVariant>>();
QString scanID = record[0].toString(); QString scanID = record[0].toString();
QString referenceID = record[1].toString(); QString referenceID = record[1].toString();
// QString patientID = record[2].toString();; QString patientID = record[2].toString();
//TODO:need StudyUID & MPPS Uid QString AccessionNumber = record[3].toString();
QString studyUID;
QString mppsUID; QString pat_sql = "SELECT AccessionNumber, StudyUID, Modality, MPPSUID FROM Patient WHERE PatientID=:patID and AccessionNumber=:accno";
QMap<QString,QVariant> map;
QMap<QString,QVariant> params;
params[":patID"] = patientID;
params[":accno"] = AccessionNumber;
SQLHelper::QueryFirst(pat_sql, map, params);
QString studyUID = map.contains("StudyUID")?map["StudyUID"].toString():"";
QString mppsUID = map.contains("MPPSUID")?map["MPPSUID"].toString():"";
emit createScanToRecon(scanID, studyUID, mppsUID, referenceID, RECON_TRANSFER_PATH + "/" + scanID); emit createScanToRecon(scanID, studyUID, mppsUID, referenceID, RECON_TRANSFER_PATH + "/" + scanID);
} }
startTransfer(); startTransfer();

View File

@@ -20,13 +20,15 @@
#include "components/CoordinateXYWidget.h" #include "components/CoordinateXYWidget.h"
#include "components/CoordinateZWidget.h" #include "components/CoordinateZWidget.h"
#include "utilities/ScanProcessSequence.h" #include "utilities/ScanProcessSequence.h"
#include "dicom/MPPSManager.h"
#ifdef WIN32 #ifdef WIN32
#else #else
#include <cmath> #include <cmath>
#endif #endif
namespace{ namespace
{
const size_t PREVIEW_ROW = 140; const size_t PREVIEW_ROW = 140;
const size_t PREVIEW_COL = 140; const size_t PREVIEW_COL = 140;
const float PIXEL_SPACING = 1.5f; const float PIXEL_SPACING = 1.5f;
@@ -383,9 +385,14 @@ void ScanFormWidget::initEvents()
mPatInf->setPatientInformation(patientInfo->Copy(), protocal); mPatInf->setPatientInformation(patientInfo->Copy(), protocal);
setScanProtocal(protocal); setScanProtocal(protocal);
LOG_USER_OPERATION(QString("Select Patient, ID: %1").arg(patientInfo->ID)) LOG_USER_OPERATION(QString("Select Patient, ID: %1").arg(patientInfo->ID))
if (JsonObject::Instance()->getMppsOpen() && !patientInfo->SPSID.isEmpty() && patientInfo->MPPSUID.isEmpty())
{
MPPSManager::getInstance()->setPatientUID(patientInfo->PatientUID);
}
mStartScanButton->setEnabled(true); mStartScanButton->setEnabled(true);
EventCenter::Default()->triggerEvent(SetSelectedPatient, nullptr, patientInfo); EventCenter::Default()->triggerEvent(SetSelectedPatient, nullptr, patientInfo);
mStartScanButton->click(); mStartScanButton->click();
} }
// mBtnScan->setEnabled(true); // mBtnScan->setEnabled(true);