public override void OnHl7Message(MessageStructure ms) { string cmdDesc = ""; try { var segments = MessageStructureConverter.MessageStructureToSegments(ms); var hl7 = HL7MessageAdapterFactory.Create(segments.Item1, segments.Item2); var cmd = MWLCommandsFactory.MapHL7ToMWLCommand(hl7, pps: false); cmdDesc = cmd.Desc(); cmd.Execute(); Logger.Global.Log("HL7MWL", null, string.Empty, -1, string.Empty, string.Empty, -1, DicomCommandType.Undefined, DateTime.Now, LogType.Information, MessageDirection.None, "Command(s) executed successfully (" + cmdDesc + ")", null, null); } catch (Exception ex) { var err = ex.Message; if (string.IsNullOrEmpty(cmdDesc)) { err += " while executing: (" + cmdDesc + ")"; } Logger.Global.Log("HL7MWL", null, string.Empty, -1, string.Empty, string.Empty, -1, DicomCommandType.Undefined, DateTime.Now, LogType.Error, MessageDirection.None, err, null, null); throw; } }
IHL7MessageItem ParsePipeMessage(string pipe) { PipeMessageConverter pmc = new PipeMessageConverter(); MessageStructure ms = pmc.PipeMessageToMessageStructure(pipe); MessageStructureConverter msc = new MessageStructureConverter(); Exception exParse = null; try { IHL7MessageItem msg = msc.MessageStructureToMessage(ms, new MessageStructureConverter.Options() { Add_NoneStandardSegmentToRoot = true, Ignore_NoneStandardSegment = true, Parse_RepeatableParentGroupFirst = true, Forgive_IncompleteMessage = true }).Message; return(msg); } catch (Exception e) { exParse = e; } try { IHL7MessageItem msg = msc.MessageStructureToMessage(ms, new MessageStructureConverter.Options() { Add_NoneStandardSegmentToRoot = true, Ignore_NoneStandardSegment = true, Parse_RepeatableParentGroupFirst = false, Forgive_IncompleteMessage = true }).Message; return(msg); } catch { throw exParse; } }