public ERRSegment(HL7Segment msh) { this(msh.getFieldSeparator(), msh.getEncodingCharacters()); }
public String toString(char segdelim) { int len = size(); for (HL7Segment seg : this) { int segSize = seg.size(); len += segSize - 1; for (int i = 0; i < segSize; i++) { String s = seg.getField(i, null); if (s != null) len += s.length(); } } char[] cs = new char[len]; int off = 0; for (HL7Segment seg : this) { char delim = seg.getFieldSeparator(); int segSize = seg.size(); for (int i = 0; i < segSize; i++) { String s = seg.getField(i, null); if (s != null) { int l = s.length(); s.getChars(0, l, cs, off); off += l; } cs[off++] = delim; } cs[off-1] = segdelim; } return new String(cs); }
public static HL7Message parse(byte[] b, int size, String defCharset) { ParsePosition pos = new ParsePosition(0); HL7Message msg = new HL7Message(); HL7Segment seg = HL7Segment.parseMSH(b, size, pos); char fieldSeparator = seg.getFieldSeparator(); String encodingCharacters = seg.getEncodingCharacters(); String charsetName = HL7Charset.toCharsetName(seg.getField(17, defCharset)); msg.add(seg); while ((seg = HL7Segment.parse( b, size, pos, fieldSeparator, encodingCharacters, charsetName)) != null) msg.add(seg); msg.trimToSize(); return msg; }
public static HL7Message makeACK(HL7Segment msh, String ackCode, String text) { int size = msh.size(); HL7Segment ackmsh = HL7Segment.makeMSH(size, msh.getFieldSeparator(), msh.getEncodingCharacters()); ackmsh.setField(2, msh.getField(4, null)); ackmsh.setField(3, msh.getField(5, null)); ackmsh.setField(4, msh.getField(2, null)); ackmsh.setField(5, msh.getField(3, null)); ackmsh.setField(8, "ACK^" + msh.getMessageType().substring(4,7) + "^ACK"); for (int i = 10; i < size; i++) ackmsh.setField(i, msh.getField(i, null)); HL7Segment msa = new HL7Segment(4, msh.getFieldSeparator(), msh.getEncodingCharacters()); msa.setField(0, "MSA"); msa.setField(1, ackCode); msa.setField(2, msh.getMessageControlID()); msa.setField(3, text != null && text.length() > 80 ? text.substring(0, 80) : text); HL7Message ack = new HL7Message(2); ack.add(ackmsh); ack.add(msa); return ack; }