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;
}