/*******************************************************************************
* Copyright (c) 2006-2016, G. Weirich
* All rights reserved.
*
* Contributors:
* G. Weirich - initial implementation
*
*******************************************************************************/
package ch.elexis.omnivore.data;
import java.util.List;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import ch.elexis.core.data.events.ElexisEventDispatcher;
import ch.elexis.core.data.util.FileUtility;
import ch.elexis.core.ui.exchange.IExchangeContributor;
import ch.elexis.core.ui.exchange.XChangeContainer;
import ch.elexis.core.ui.exchange.elements.DocumentElement;
import ch.elexis.core.ui.exchange.elements.MedicalElement;
import ch.elexis.data.PersistentObject;
import ch.elexis.data.Query;
import ch.elexis.omnivore.Constants;
import ch.rgw.tools.MimeTool;
public class xChangeContributor implements IExchangeContributor {
public void exportHook(MedicalElement me){
XChangeContainer container = me.getContainer();
PersistentObject pat = container.getMapping(me);
Query<DocHandle> qbe = new Query<DocHandle>(DocHandle.class);
qbe.add(DocHandle.FLD_PATID, Query.EQUALS, pat.getId());
qbe.add(DocHandle.FLD_CAT, "", null); //$NON-NLS-1$
List<DocHandle> docs = qbe.execute();
for (DocHandle dh : docs) {
DocumentElement de = new DocumentElement();
de.setDefaultXid(dh.getId());
de.setTitle(dh.getTitle());
de.setOriginator(ElexisEventDispatcher.getSelectedMandator());
de.setDate(dh.getDate());
de.addMeta(DocHandle.FLD_KEYWORDS, dh.getKeywords());
de.addMeta("category", dh.getCategoryName()); //$NON-NLS-1$
de.addMeta("plugin", Constants.PLUGIN_ID); //$NON-NLS-1$
de.setHint(Messages.xChangeContributor_thisIsAnOmnivoreDoc);
de.setSubject(dh.getCategoryName());
String mime = dh.getMimetype();
if (!mime.matches("[a-zA-Z-]+/[a-zA-Z-]+2")) { //$NON-NLS-1$
mime = FileUtility.getFileExtension(mime);
String m2 = MimeTool.getMimeType(mime.substring(1));
if (m2.length() > 0) {
mime = m2;
}
}
de.setMimetype(mime);
byte[] cnt = dh.getContents();
me.getSender().addBinary(de.getID(), cnt);
me.addDocument(de);
container.addChoice(de, dh.getTitle(), dh);
}
}
public void importHook(XChangeContainer container, PersistentObject context){}
public void setInitializationData(IConfigurationElement arg0, String arg1, Object arg2)
throws CoreException{}
public boolean init(MedicalElement me, boolean bExport){
return true;
}
}