private byte[] xslt(UnparsedHL7Message msg) throws Exception { String charsetName = HL7Charset.toCharsetName(msg.msh().getField(17, charset)); ByteArrayOutputStream out = new ByteArrayOutputStream(); TransformerHandler th = factory.newTransformerHandler(tpls); Transformer t = th.getTransformer(); t.setParameter("MessageControlID", HL7Segment.nextMessageControlID()); t.setParameter("DateTimeOfMessage", HL7Segment.timeStamp(new Date())); if (xsltParams != null) for (int i = 1; i < xsltParams.length; i++, i++) t.setParameter(xsltParams[i-1], xsltParams[i]); th.setResult(new SAXResult(new HL7ContentHandler( new OutputStreamWriter(out, charsetName)))); new HL7Parser(th).parse(new InputStreamReader( new ByteArrayInputStream(msg.data()), charsetName)); return out.toByteArray(); }
private byte[] xslt(UnparsedHL7Message msg) throws Exception { String charsetName = HL7Charset.toCharsetName(msg.msh().getField(17, charset)); ByteArrayOutputStream out = new ByteArrayOutputStream(); TransformerHandler th = factory.newTransformerHandler(tpls); Transformer t = th.getTransformer(); t.setParameter("MessageControlID", HL7Segment.nextMessageControlID()); t.setParameter("DateTimeOfMessage", HL7Segment.timeStamp(new Date())); if (xsltParams != null) for (int i = 1; i < xsltParams.length; i++, i++) t.setParameter(xsltParams[i-1], xsltParams[i]); th.setResult(new SAXResult(new HL7ContentHandler( new OutputStreamWriter(out, charsetName)))); new HL7Parser(th).parse(new InputStreamReader( new ByteArrayInputStream(msg.data()), charsetName)); return out.toByteArray(); }
public static HL7Segment makeMSH(int size, char fieldSeparator, String encodingCharacters) { HL7Segment msh = new HL7Segment(size, fieldSeparator, encodingCharacters); msh.setField(0, "MSH"); msh.setField(1, encodingCharacters); msh.setField(6, timeStamp(new Date())); msh.setField(9, nextMessageControlID()); msh.setField(10, "P"); msh.setField(11, "2.5"); return msh; } }