public static MessagePair GetMessagePair(string recieveMessage, List <SampleTemplate> templateList) { DateTime dtBegin = DateTime.Now; MessagePair p = new MessagePair(); p.IncomingMessageContent = recieveMessage; p.IncomingMessageType = HL7MessageParser.GetField(recieveMessage, "MSH", 9).Replace("^", "_"); SampleTemplate matchTemplate = null; SampleTemplate commonTemplate = null; foreach (SampleTemplate t in templateList) { string msgType = t.GetIncomingMessageType(); if (msgType == "ANY") { commonTemplate = t; } if (p.IncomingMessageType == msgType) { matchTemplate = t; break; } } if (matchTemplate == null) { matchTemplate = commonTemplate; } if (matchTemplate == null) { Program.Context.Log.Write(LogType.Error, string.Format("Cannot find match acknowledgment message template for message {0} \r\n{1}", p.IncomingMessageType, p.IncomingMessageContent)); p.OutgoingMessageType = "AE"; p.OutgoingMessageContent = HL7MessageParser.FormatResponseMessage (p.IncomingMessageContent, HL7MessageTemplates.ErrorResponse); } else { p.Template = matchTemplate; p.OutgoingMessageType = matchTemplate.GetOutgoingMessageType(); p.OutgoingMessageContent = HL7MessageParser.FormatResponseMessage (p.IncomingMessageContent, matchTemplate.GetTemplate()); } DateTime dtEnd = DateTime.Now; p.ProcessingTime = dtEnd.Subtract(dtBegin); return(p); }
private void listViewMessage_SelectedIndexChanged(object sender, EventArgs e) { if (this.listViewMessage.SelectedItems.Count < 1) { return; } MessagePair p = this.listViewMessage.SelectedItems[0].Tag as MessagePair; if (p != null) { this.textBoxReceive.Text = p.IncomingMessageContent; this.textBoxSend.Text = p.OutgoingMessageContent; } }
private bool _server_OnRequest(string receiveData, ref string sendData) { //string incomingMessage = receiveData.Replace("\r", "\r\n"); string incomingMessage = receiveData; if (Program.Context.ConfigMgr.Config.MessagePreprocessing.Enable) { incomingMessage = Program.Context.ConfigMgr.Config.MessagePreprocessing.Replace(incomingMessage); } incomingMessage = incomingMessage.Replace("\r", "\r\n"); MessagePair pair = MessagePair.GetMessagePair(incomingMessage, _templateList); if (pair == null) { return(false); } UpdateGUIHandler2 d = delegate(MessagePair p) { ListViewItem item = new ListViewItem(p.IncomingMessageType); item.SubItems.Add(p.OutgoingMessageType); item.SubItems.Add(p.ProcessingTime.TotalMilliseconds.ToString()); item.Tag = p; this.listViewMessage.Items.Add(item); if (this.listViewMessage.Items.Count == 1) { this.listViewMessage.Items[0].Selected = true; } }; this.listViewMessage.Invoke(d, pair); string outgoingMessagse = pair.OutgoingMessageContent; sendData = outgoingMessagse.Replace("\r\n", "\r"); return(true); //UpdateGUIHandler d = delegate(string context) //{ // this.textBoxReceive.Text = context.Replace("\r", "\r\n"); // return this.textBoxSendTemplate.Text.Replace("\r\n", "\r"); //}; //string rspMessageTemplate = this.textBoxReceive.Invoke(d, receiveData) as string; //sendData = HL7MessageHelper.FormatResponseMessage(receiveData, rspMessageTemplate); //return true; }