package org.celllife.idart.gui.dataQuality;
import model.manager.excel.conversion.exceptions.ReportException;
import model.manager.exports.PatientExportObject;
import model.manager.exports.columns.SimpleColumnsEnum;
import model.nonPersistent.EntitySet;
import org.celllife.idart.gui.dataExports.DataExportJob;
import org.celllife.idart.gui.dataQualityexports.DataQualityBase;
import org.celllife.idart.misc.AbstractCancellableJob;
import org.eclipse.core.runtime.IProgressMonitor;
public class DataQualityReportJob extends AbstractCancellableJob {
private final DataQualityBase dqr;
private String filename;
private int numberOfErrors;
private boolean reportSuccessfullyCompleted = true;
public DataQualityReportJob(DataQualityBase dqr, String filename) {
this.dqr = dqr;
this.filename = filename;
}
public void publish(EntitySet set, IProgressMonitor monitor)
{
try{
if (!set.isEmpty()) {
PatientExportObject peo = new PatientExportObject();
peo.setPatientSet(set);
peo.addSimpleColumn(SimpleColumnsEnum.patientId);
peo.addSimpleColumn(SimpleColumnsEnum.firstNames);
peo.addSimpleColumn(SimpleColumnsEnum.lastName);
peo.addSimpleColumn(new SimpleColumnsEnum("DataQualityError", dqr
.getMessage()));
DataExportJob dataExportJob = new DataExportJob(filename, peo);
monitor.subTask("Exporting data");
dataExportJob.performJob(monitor);
}
}catch(ReportException re1){
alreadyUsed();
}
}
@Override
public void performJob(IProgressMonitor monitor) throws ReportException {
//EntitySet exportSet = dqr.runReport();
//numberOfErrors = exportSet.getSize();
//publish(exportSet, monitor);
}
public int getNumberOfErrors() {
return numberOfErrors;
}
public String alreadyUsed(){
reportSuccessfullyCompleted = false;
return "File '"+ filename+"' already in use";
}
public boolean isReportSuccessfullyCompleted() {
return reportSuccessfullyCompleted;
}
public void setReportSuccessfullyCompleted(boolean reportSuccessfullyCompleted) {
this.reportSuccessfullyCompleted = reportSuccessfullyCompleted;
}
}