/*******************************************************************************
* Copyright (c) 2008-2010, G. Weirich and Elexis
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* G. Weirich - initial implementation
*
*******************************************************************************/
package ch.elexis.core.ui.exchange.elements;
import java.util.List;
import ch.elexis.core.ui.exchange.XChangeExporter;
import ch.elexis.data.LabItem;
import ch.elexis.data.LabResult;
import ch.rgw.tools.TimeTool;
import ch.rgw.tools.XMLTool;
public class ResultElement extends XChangeElement {
public static final String XMLNAME = "result";
public static final String ATTR_DATE = "timestamp";
public static final String ATTR_NORMAL = "isNormal";
public static final String ATTR_LABITEM = "findingRef";
public static final String ELEMENT_META = "meta";
public static final String ATTRIB_CREATOR = "creator";
public static final String ELEMENT_IMAGE = "image";
public static final String ELEMENT_TEXTRESULT = "textResult";
public static final String ELEMENT_DOCRESULT = "documentRef";
@Override
public String getXMLName(){
return XMLNAME;
}
public static ResultElement addResult(MedicalElement me, LabResult lr){
List<FindingElement> findings = me.getAnalyses();
for (FindingElement fe : findings) {
if (fe.getXid().getID().equals(XMLTool.idToXMLID(lr.getItem().getId()))) {
ResultElement re = new ResultElement().asExporter(me.sender, lr);
me.addAnalyse(re);
return re;
}
}
FindingElement fe = new FindingElement().asExporter(me.sender, (LabItem) lr.getItem());
me.addFindingItem(fe);
ResultElement re = new ResultElement().asExporter(me.sender, lr);
me.addAnalyse(re);
return re;
}
private ResultElement asExporter(XChangeExporter home, LabResult lr){
asExporter(home);
setAttribute("id", XMLTool.idToXMLID(lr.getId()));
setAttribute(ATTR_DATE, new TimeTool(lr.getDate()).toString(TimeTool.DATETIME_XML));
setAttribute(ATTR_LABITEM, XMLTool.idToXMLID(lr.getItem().getId()));
ResultElement eResult = new ResultElement();
eResult.setText(lr.getResult());
add(eResult);
// setAttribute(ATTR_NORMAL,); // TODO
home.getContainer().addChoice(this, lr.getLabel(), lr);
return this;
}
public void setText(String text){
}
}