#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); }