Files
glocalize/DicomScanWorker.cpp

36 lines
1.2 KiB
C++

#include "DicomScanWorker.h"
DicomScanWorker::DicomScanWorker(QObject* parent)
: QObject(parent)
{
DicomScanService::Callbacks cb;
cb.folderIsEmpty = [&]() { emit folderIsEmpty(); };
cb.statusInfo = [&](QString msg) { emit statusInfo(msg); };
cb.parse_result = [&](int r, gPatientRTGeneralInfos* infos) { emit parse_result(r, infos); };
cb.loadFail = [&](QString msg) { emit loadFail(msg); };
cb.loadEnd = [&](vtkImageData* vol) { emit loadEnd(vol); };
cb.loadedRTIso = [&](double* iso) { emit loadedRTIso(iso); };
cb.loadedVolBBox = [&](double* bbox, double* spacing, int* dim) { emit loadedVolBBox(bbox, spacing, dim); };
cb.referenceChange = [&](double dx, double dy, double dz) { emit referenceChange(dx, dy, dz); };
cb.virtualIsoTested = [&](bool b) { emit virtualIsoTested(b); };
svc.setCallbacks(std::move(cb));
}
void DicomScanWorker::load(QString p_loadDir)
{
m_abort.store(false);
if (m_abort.load()) { emit aborted(); return; }
svc.load(p_loadDir);
if (m_abort.load()) emit aborted();
}
void DicomScanWorker::changeRef(int selectedRef)
{
svc.changeRef(selectedRef);
}
void DicomScanWorker::abort()
{
m_abort.store(true);
}