我需要解析HL7消息,首先,验证消息,然后解析。
XMLParser xmlParser = new DefaultXMLParser();
//encode message in XML
String hl7MessageInXML = null;
try {
hl7MessageInXML = xmlParser.encode(message);
} catch (HL7Exception e) {
e.printStackTrace();
}
我需要解析HL7消息,首先,验证消息,然后解析。
XMLParser xmlParser = new DefaultXMLParser();
//encode message in XML
String hl7MessageInXML = null;
try {
hl7MessageInXML = xmlParser.encode(message);
} catch (HL7Exception e) {
e.printStackTrace();
}
示例代码:
import ca.uhn.hl7v2.parser.*;
import ca.uhn.hl7v2.model.Message;
import ca.uhn.hl7v2.model.v24.message.ACK;
public class ParserDemo {
public static void main(String args[]) {
//for demo purposes, we just declare a literal message string
String ackMessageString
= "MSH|^~\\&|foo|foo||foo|200108151718||ACK^A01^ACK|1|D|2.4|\rMSA|AA\r";
//instantiate a PipeParser, which handles the "traditional encoding"
PipeParser pipeParser = new PipeParser();
try {
//parse the message string into a Message object
Message message = pipeParser.parse(ackMessageString);
//if it is an ACK message (as we know it is), cast it to an
// ACK object so that it is easier to work with, and change a value
if (message instanceof ACK) {
ACK ack = (ACK) message;
ack.getMSH().getProcessingID().getProcessingMode().setValue("P");
}
//instantiate an XML parser
XMLParser xmlParser = new DefaultXMLParser();
//encode message in XML
String ackMessageInXML = xmlParser.encode(message);
//print XML-encoded message to standard out
System.out.println(ackMessageInXML);
} catch (Exception e) {
e.printStackTrace();
}
}
}
尝试使用高致病性禽流感解析器API( http://hl7api.sourceforge.net/ )。 在这里,你可以找到有关解析HL7消息的一些例子:
http://ignaciosuay.com/how-to-use-hapi-terser-with-hl7/
http://ignaciosuay.com/how-to-set-repetitions-in-hl7-messages-using-hapi-terser/
希望能帮助到你