/******************************************************************************* * Copyright (c) 2011-2016 Medevit OG, Medelexis AG * 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: * Marco Descher, initial API and implementaion * Lucia Amman, bug fixes and improvements * Sponsors: M. + P. Richter *******************************************************************************/ package at.medevit.elexis.gdt.handler.response; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.ui.statushandlers.StatusManager; import at.medevit.elexis.gdt.Activator; import at.medevit.elexis.gdt.constants.GDTConstants; import at.medevit.elexis.gdt.constants.GDTPreferenceConstants; import at.medevit.elexis.gdt.messages.GDTSatzNachricht6300; import at.medevit.elexis.gdt.messages.GDTSatzNachricht6301; import at.medevit.elexis.gdt.tools.GDTSatzNachrichtHelper; import at.medevit.elexis.gdt.ui.GDTPreferencePage; import ch.elexis.core.data.activator.CoreHub; import ch.elexis.core.data.events.ElexisEventDispatcher; import ch.elexis.core.ui.util.Log; import ch.elexis.data.Patient; /** * Erstelle eine Antwort mit Datensatz 6301 auf Anfrage 6300 * * @author marco * */ public class GDTResponseIn6300Out6301 { private static Log logger = Log.get(GDTResponseIn6300Out6301.class.getName()); public static GDTSatzNachricht6301 createResponse(GDTSatzNachricht6300 in){ String patientenKennung = in.getValue(GDTConstants.FELDKENNUNG_PATIENT_KENNUNG); String gdtSender = in.getValue(GDTConstants.FELDKENNUNG_GDT_ID_SENDER); Patient pat = null; if (patientenKennung != null) { pat = Patient.loadByPatientID(patientenKennung); } else { pat = ElexisEventDispatcher.getSelectedPatient(); } if (pat == null || (!pat.isValid())) { String message = "GDT (6300): Stammdatenübermittlung für unbekannten oder ungültigen Patienten angefordert. Patientenkennung: " + patientenKennung; Status status = new Status(IStatus.WARNING, Activator.PLUGIN_ID, message); StatusManager.getManager().handle(status, StatusManager.SHOW); logger.log(message, Log.WARNINGS); return null; } return new GDTSatzNachricht6301(pat.get(Patient.FLD_PATID), pat.getName(), pat.getVorname(), GDTSatzNachrichtHelper.deliverBirthdate(pat), null, pat.get(Patient.TITLE), null, pat.get(Patient.FLD_ZIP) + " " + pat.get(Patient.FLD_PLACE), pat.get(Patient.FLD_STREET), null, GDTSatzNachrichtHelper.bestimmeGeschlechtsWert(pat.get(Patient.FLD_SEX)), null, null, null, gdtSender, CoreHub.localCfg.get(GDTPreferenceConstants.CFG_GDT_ID, null), GDTConstants.ZEICHENSATZ_IBM_CP_437 + "", GDTConstants.GDT_VERSION); } }