/*******************************************************************************
* Copyright (c) 2006-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 org.jdom.Element;
import ch.elexis.core.data.interfaces.IDiagnose;
import ch.elexis.core.ui.exchange.XChangeExporter;
import ch.elexis.data.Konsultation;
import ch.rgw.tools.StringTool;
import ch.rgw.tools.TimeTool;
import ch.rgw.tools.XMLTool;
public class EpisodeElement extends XChangeElement {
public static final String XMLNAME = "episode";
public static final String ATTR_BEGINDATE = "beginDate";
public static final String ATTR_ENDDATE = "endDate";
public static final String ATTR_TITLE = "name";
public static final String ELEMENT_DIAGNOSIS = "diagnosis";
public static final String ATTR_CODESYSTEM = "codesystem";
public static final String ATTR_CODE = "code";
public String getXMLName(){
return XMLNAME;
}
public EpisodeElement asExporter(XChangeExporter parent, Konsultation k, IDiagnose dg){
asExporter(parent);
setAttribute(ATTR_BEGINDATE, new TimeTool(k.getDatum()).toString(TimeTool.DATE_ISO));
setAttribute(ATTR_ID, XMLTool.idToXMLID(StringTool.unique("episode")));
DiagnosisElement eDiag = new DiagnosisElement().asExporter(parent, dg);
add(eDiag);
setAttribute(ATTR_TITLE, dg.getLabel());
InsuranceElement eInsurance = new InsuranceElement().asExporter(parent, k);
add(eInsurance);
return this;
}
// public EpisodeElement(XChangeContainer parent, )
public String getBeginDate(){
return getAttr(ATTR_BEGINDATE);
}
public String getEndDate(){
return getAttr(ATTR_ENDDATE);
}
public String getTitle(){
return getAttr(ATTR_TITLE);
}
public String getText(){
Element text = getElement().getChild("text", getContainer().getNamespace());
if (text != null) {
return text.getText();
}
return "";
}
public String getDiagnosis(){
DiagnosisElement dia =
(DiagnosisElement) getChild(ELEMENT_DIAGNOSIS, DiagnosisElement.class);
if (dia != null) {
DiagnosisElement de = new DiagnosisElement();
String ret = de.getCode() + " (" + de.getCodeSystem() + ")";
return ret;
}
return "";
}
static class DiagnosisElement extends XChangeElement {
public String getXMLName(){
return ELEMENT_DIAGNOSIS;
}
public DiagnosisElement asExporter(XChangeExporter parent, IDiagnose dg){
asExporter(parent);
setAttribute(ATTR_CODESYSTEM, dg.getCodeSystemName());
setAttribute(ATTR_CODE, dg.getCode());
return this;
}
public String getCodeSystem(){
return getAttr(ATTR_CODESYSTEM);
}
public String getCode(){
return getAttr(ATTR_CODE);
}
}
}