package ch.elexis.connect.afinion.packages; import java.util.ResourceBundle; import ch.elexis.connect.afinion.Preferences; import ch.elexis.core.data.activator.CoreHub; import ch.elexis.core.data.beans.ContactBean; import ch.elexis.core.importer.div.importers.TransientLabResult; import ch.elexis.core.model.LabResultConstants; import ch.elexis.core.types.LabItemTyp; import ch.elexis.core.ui.importer.div.importers.LabImportUtil; import ch.elexis.data.LabItem; import ch.elexis.data.LabResult; import ch.elexis.data.Labor; import ch.elexis.data.Patient; import ch.rgw.tools.TimeTool; public class Value { private static final String BUNDLE_NAME = "ch.elexis.connect.afinion.packages.valuetexts"; private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); private static String getString(String paramName, String key){ return RESOURCE_BUNDLE.getString(paramName + "." + key); } public static Value getValue(final String paramName, final String unit) throws PackageException{ return new Value(paramName, unit); } String _shortName; String _longName; String _unit; LabItem _labItem; String _refMann; String _refFrau; Labor _labor; public String get_shortName(){ return _shortName; } public String get_longName(){ return _longName; } Value(final String paramName, final String unit) throws PackageException{ _shortName = getString(paramName, "kuerzel"); _longName = getString(paramName, "text"); _unit = getString(paramName, "unit"); if (CoreHub.localCfg.get(Preferences.APPLY_SENT_UNITS, "n").equalsIgnoreCase("y")) { _unit = unit; } _refMann = getString(paramName, "refM"); _refFrau = getString(paramName, "refF"); } private void initialize(){ _labor = LabImportUtil.getOrCreateLabor(Messages.getString("Value.LabKuerzel")); _labItem = LabImportUtil.getLabItem(_shortName, _labor); if (_labItem == null) { _labItem = new LabItem(_shortName, _longName, _labor, _refMann, _refFrau, _unit, LabItemTyp.NUMERIC, Messages.getString("Value.LabName"), "50"); } } public TransientLabResult fetchValue(Patient patient, String value, String flags, TimeTool date){ if (_labItem == null) { initialize(); } // do not set a flag or comment if none is given if (flags == null || flags.isEmpty()) { return new TransientLabResult.Builder(new ContactBean(patient), new ContactBean(_labor), _labItem, value).date(date) .build(new LabImportUtil()); } String comment = ""; int resultFlags = 0; if (flags.equals("1")) { // comment = Messages.getString("Value.High"); resultFlags |= LabResultConstants.PATHOLOGIC; } if (flags.equals("2")) { // comment = Messages.getString("Value.Low"); resultFlags |= LabResultConstants.PATHOLOGIC; } if (flags.equals("*") || flags.equals("E")) { comment = Messages.getString("Value.Error"); } return new TransientLabResult.Builder(new ContactBean(patient), new ContactBean(_labor), _labItem, value).date(date) .comment(comment).flags(resultFlags).build(new LabImportUtil()); } }