/******************************************************************************* * Copyright (c) 2008-2009, 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.base.befunde.xchange; import java.util.List; import ch.elexis.befunde.Messwert; import ch.elexis.core.ui.exchange.XChangeExporter; import ch.elexis.core.ui.exchange.elements.FindingElement; import ch.elexis.core.ui.exchange.elements.MedicalElement; import ch.elexis.core.ui.exchange.elements.MetaElement; import ch.elexis.core.ui.exchange.elements.ResultElement; import ch.elexis.core.ui.exchange.elements.XidElement; import ch.rgw.tools.TimeTool; import ch.rgw.tools.XMLTool; public class BefundElement extends ResultElement { /** * Ein neues Resultat hinzufügen. Erstellt ggf. das dazugehörige FindingElement. ID des * FindingElements ist die id des Messwerts mit angehängtem Spalten-Namen * * @param me * @param mw * @param fl * @return */ public static BefundElement addBefund(MedicalElement me, Messwert mw, String field){ List<FindingElement> findings = me.getAnalyses(); String raw_id = mw.getId() + field; String id = XMLTool.idToXMLID(raw_id); for (FindingElement fe : findings) { XidElement eXid = fe.getXid(); if (eXid != null) { if (id.equals(eXid.getID())) { BefundElement bf = new BefundElement().asExporter(me.getSender(), mw, field); me.addAnalyse(bf); return bf; } } } BefundeItem bi = new BefundeItem().asExporter(me.getSender(), mw, field); me.addFindingItem(bi); BefundElement bf = new BefundElement().asExporter(me.getSender(), mw, field); me.addAnalyse(bf); return bf; } BefundElement asExporter(XChangeExporter home, Messwert mw, String field){ asExporter(home); TimeTool tt = new TimeTool(mw.getDate()); String date = tt.toString(TimeTool.DATE_COMPACT); String raw_id = mw.getId() + field + date; setAttribute("id", XMLTool.idToXMLID(raw_id)); //$NON-NLS-1$ setAttribute(ATTR_DATE, tt.toString(TimeTool.DATETIME_XML)); setAttribute(ATTR_LABITEM, XMLTool.idToXMLID(mw.getId() + field)); add(new MetaElement().asExporter(home, ATTRIB_CREATOR, Messwert.PLUGIN_ID)); ResultElement eResult = new ResultElement(); eResult.setText(mw.getResult(field)); add(eResult); home.getContainer().addChoice(this, mw.getLabel() + ":" + field, mw); //$NON-NLS-1$ return this; } }