/*******************************************************************************
* 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.messages;
import java.util.HashMap;
import java.util.LinkedHashMap;
import at.medevit.elexis.gdt.constants.GDTConstants;
public class GDTSatzNachricht6300 extends GDTSatzNachricht {
/**
* Erstelle eine neue Nachricht der Satzart STAMMDATEN ANFORDERN
*
* @param patientenkennung wenn null fordere Daten des aktuellen Patienten an
* @param gdtIdReceiver optional
* @param gdtIdSender optional
* @param zeichensatz optional
* @param gdtVersion - default: {@link GDTConstants#GDT_VERSION}
*/
public GDTSatzNachricht6300(String patientenkennung, String gdtIdReceiver, String gdtIdSender, String zeichensatz, String gdtVersion){
super(GDTConstants.SATZART_STAMMDATEN_ANFORDERN, gdtIdReceiver, gdtIdSender, zeichensatz, gdtVersion);
// this.patientenkennung = patientenkennung;
values.put(GDTConstants.FELDKENNUNG_PATIENT_KENNUNG, patientenkennung);
}
@Override
protected void createMessage(){
super.createMessage();
addLine(GDTConstants.FELDKENNUNG_PATIENT_KENNUNG);
}
/**
* Bequemlichkeits Konstruktor für Datensatz 6300 - Beinhaltet nur die MUSS Felder
*
* @param patientenkennung
* @param gdtVersion - default: {@link GDTConstants#GDT_VERSION}
*/
public GDTSatzNachricht6300(String patientenkennung, String gdtVersion) {
this(patientenkennung, null, null, null, gdtVersion);
}
/**
* Parse an incoming 6300 Message from a String array
*
* @param satznachricht
* @return class if successful else null
*/
public static GDTSatzNachricht6300 createfromStringArray(String[] satznachricht){
HashMap<Integer, String> ds = new LinkedHashMap<Integer, String>();
for (int i = 0; i < satznachricht.length; i++) {
int length = Integer.parseInt(satznachricht[i].substring(0, 3));
int feldkennung = Integer.parseInt(satznachricht[i].substring(3, 7));
String value = satznachricht[i].substring(7, length-2);
ds.put(feldkennung, value);
}
int satzkennung = Integer.parseInt(ds.get(GDTConstants.FELDKENNUNG_SATZIDENTIFIKATION));
if(satzkennung!=GDTConstants.SATZART_STAMMDATEN_ANFORDERN) return null;
return new GDTSatzNachricht6300(ds.get(GDTConstants.FELDKENNUNG_PATIENT_KENNUNG),
ds.get(GDTConstants.FELDKENNUNG_GDT_ID_EMPFAENGER),
ds.get(GDTConstants.FELDKENNUNG_GDT_ID_SENDER),
ds.get(GDTConstants.FELDKENNUNG_VERWENDETER_ZEICHENSATZ),
ds.get(GDTConstants.FELDKENNUNG_VERSION_GDT));
}
}