示例#1
0
            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);
            }
示例#2
0
        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;
            }
        }
示例#3
0
        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;
        }