/// <summary> /// Demonstrates how to parse incoming HL7 messages. /// </summary> /// <param name="sender">The sender.</param> /// <param name="message">The message.</param> private static void OnMessageEvent(object sender, Message message) { IEHRInterface ehrInterface = sender as IEHRInterface; SampleMessageProcessor sampleMessageProcessor = new SampleMessageProcessor(); string messageType = message.MessageType(); Console.WriteLine("[{0}]: {1} Event ", ehrInterface.Name, messageType); switch (messageType) { case "ADT^A01": case "ADT^A02": case "ADT^A03": case "ADT^A04": // demonstrates how to read an HL7 ADT ("Admit Dischrage Transfer") message. sampleMessageProcessor.HandleADT(message); break; case "ORU^R01": // demonstrates how to read an HL7 ORU ("Observation Result") message sampleMessageProcessor.HandleORU(message); break; case "ADT^A34": // demonstrates how to read an HL7 ADT Patient Merge message sampleMessageProcessor.HandleMerge(message); break; default: break; } }
/// <summary> /// Demonstrates how to capture an event which describes a change in interface status (i.e. Started, Stopped). /// </summary> /// <param name="sender">The sender.</param> /// <param name="statusEvent">The e.</param> private static void OnStatusEvent(object sender, InterfaceStatusEvent statusEvent) { IEHRInterface ehrInterface = sender as IEHRInterface; Console.WriteLine("[{0}]: {1}", ehrInterface.Name, statusEvent.Text); }
/// <summary> /// Demonstrates how to capture errors issued by an interface. Errors are shared as an event /// to ensure the interface continues to process incoming traffic. /// </summary> /// <param name="sender">The sender.</param> /// <param name="e">The e.</param> private static void OnErrorEvent(object sender, Exception e) { IEHRInterface ehrInterface = sender as IEHRInterface; Console.WriteLine("[{0}]: {1}", ehrInterface.Name, e.ToString()); }