package at.medevit.elexis.impfplan.ui.handlers;
import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.jface.dialogs.TitleAreaDialog;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import at.medevit.elexis.impfplan.model.po.Vaccination;
import at.medevit.elexis.impfplan.ui.dialogs.SupplementVaccinationDialog;
import ch.elexis.core.data.events.ElexisEventDispatcher;
import ch.elexis.core.ui.UiDesk;
import ch.elexis.data.Artikel;
import ch.elexis.data.Patient;
import ch.elexis.data.PersistentObjectFactory;
import ch.rgw.tools.TimeTool;
public class SupplementVaccinationHandler extends AbstractHandler {
private static Logger logger = LoggerFactory.getLogger(SupplementVaccinationHandler.class);
@Override
public Object execute(ExecutionEvent event) throws ExecutionException{
Patient sp = ElexisEventDispatcher.getSelectedPatient();
if(sp==null) {
return null;
}
SupplementVaccinationDialog svd = new SupplementVaccinationDialog(UiDesk.getTopShell(), sp);
int retVal = svd.open();
if (retVal == TitleAreaDialog.OK) {
String patientId = sp.getId();
String administratorString = svd.getAdministratorString();
String lotNo = svd.getLotNo();
TimeTool doa = svd.getDateOfAdministration();
String articleString = svd.getArticleString();
Artikel art = (Artikel) new PersistentObjectFactory().createFromString(articleString);
if (art != null) {
new Vaccination(patientId, art, doa.getTime(), lotNo, administratorString);
} else {
Vaccination v =
new Vaccination(patientId, null, articleString, null, null, doa.getTime(),
lotNo, administratorString);
v.setVaccAgainst(svd.getVaccAgainst());
}
logger.debug("Supplement vaccination: " + articleString + " added");
}
return null;
}
}