using System.Diagnostics;
using NHapi.Model.V23.Message;
namespace HapiParserBasicOperations
public static void Main(string[] args)
const string messageString = "MSH|^~\\&|SENDING_APPLICATION|SENDING_FACILITY|RECEIVING_APPLICATION|RECEIVING_FACILITY|20110614075841||ACK|1407511|P|2.3||||||\r\n" +
"MSA|AA|1407511|Success||";
System.Diagnostics.Debug.Write(messageString);
var ourPipeParser = new PipeParser();
var hl7Message = ourPipeParser.Parse(messageString);
var ackResponseMessage = hl7Message as ACK;
if (ackResponseMessage != null) {
var mshSegmentMessageData = ackResponseMessage.MSH;
Debug.WriteLine("Message Type is " + mshSegmentMessageData.MessageType.MessageType);
LogToDebugConsole("Message Control Id is " + mshSegmentMessageData.MessageControlID);
LogToDebugConsole("Message Timestamp is " + mshSegmentMessageData.DateTimeOfMessage.TimeOfAnEvent.GetAsDate());
LogToDebugConsole("Sending Facility is " + mshSegmentMessageData.SendingFacility.NamespaceID.Value);
ackResponseMessage.MSA.AcknowledgementCode.Value = "AR";
LogToDebugConsole("HL7 Pipe Delimited Message Output:");
LogToDebugConsole(ourPipeParser.Encode(hl7Message));
var ourXmlParser = new DefaultXMLParser();
LogToDebugConsole("HL7 XML Formatted Message Output:");
LogToDebugConsole(ourXmlParser.Encode(hl7Message));
LogToDebugConsole("Error occured -> {e.StackTrace}");
private static void LogToDebugConsole(string informationToLog)
Debug.WriteLine(informationToLog);