Exemple #1
0
        public void ReceiveMessage(IPushRoute route, Message message)
        {
            bool sndResult = false;

            try
            {
                if (message != null &&
                    message.Header != null)
                {
                    switch (_context.ConfigMgr.Config.MessageProcessingType)
                    {
                    case MessageProcessType.HL7v2Text:
                        string payload = HL7MessageHelper.GetHL7V2PayLoad(message);
                        sndResult = _controler.SendMLLPNotification(payload);
                        break;

                    case MessageProcessType.HL7v2XML:
                        string hl7xml = message.Body;
                        sndResult = _controler.SendHL7v2XMLNotification(hl7xml);
                        break;

                    default:
                    case MessageProcessType.OtherXML:
                        sndResult = _controler.SendOtherXMLNotification(message);
                        break;
                    }

                    ////if (MessageRegistry.HL7V2_NotificationMessageType.EqualsTo(message.Header.Type))
                    //if (!_context.Context.ConfigMgr.Config.EnableHL7XMLTransform)
                    //{
                    //    string payload = HL7MessageHelper.GetHL7V2PayLoad(message);
                    //    sndResult = _controler.SendNotification(payload);
                    //}
                    ////else if (MessageRegistry.HL7V2XML_NotificationMessageType.EqualsTo(message.Header.Type))
                    //else
                    //{
                    //    string hl7xml = message.Body;
                    //    sndResult = _controler.SendXMLNotification(hl7xml);
                    //}
                    ////else
                    ////{
                    ////    _context.Log.Write(LogType.Error, "Received a unwanted publishing message.");
                    ////}
                }
                else
                {
                    _context.Log.Write(LogType.Error, "Received publishing message failed.");
                }
            }
            catch (Exception e)
            {
                _context.Log.Write(e);
            }

            if (!sndResult)
            {
                LPCException.RaiseLPCException(route, "Send HL7 message failed, maybe retry is needed.");
            }
        }
Exemple #2
0
        public void SetError(IMessage msg)
        {
            message = (ACK)HL7MessageHelper.MakeACK(msg, "AE", "Error");

            // Add an ERR segment
            NHapi.Model.V24.Datatype.ELD eld = message.ERR.GetErrorCodeAndLocation(0);
            eld.CodeIdentifyingError.AlternateIdentifier.Value = "1";
            eld.CodeIdentifyingError.AlternateText.Value       = "Something went wrong.";
        }
Exemple #3
0
        private bool WriteHL7v2TextMessage(HYS.IM.Messaging.Objects.Message msg)
        {
            try
            {
                string payload  = HL7MessageHelper.GetHL7V2PayLoad(msg);
                string filePath = Path.Combine(_context.ConfigMgr.Config.OutputFileFolder, PathHelper.GetRelativePathByMode(_context.ConfigMgr.Config.OrganizationMode));
                filePath = Path.Combine(filePath, msg.Header.ID.ToString() + _context.ConfigMgr.Config.FileExtension);

                FileHelper.WriteFile(filePath, payload, _context.ConfigMgr.Config.CodePageName);
                _context.Log.Write(string.Format("Write message to file {0}", filePath));
                return(true);
            }
            catch (Exception err)
            {
                _context.Log.Write(err);
                return(false);
            }
        }
Exemple #4
0
 public void SetMessage(IMessage msg)
 {
     message = (ACK)HL7MessageHelper.MakeACK(msg, "AA", "Error");
 }
Exemple #5
0
        public bool ProcessMessage(IPullRoute route, Message request, out Message response)
        {
            response = new Message();

            try
            {
                if (request != null &&
                    request.Header != null)
                {
                    string req;
                    string rsp;

                    switch (_context.ConfigMgr.Config.MessageProcessingType)
                    {
                    case MessageProcessType.HL7v2Text:
                    {
                        req = HL7MessageHelper.GetHL7V2PayLoad(request);
                        if (_controler.SendMLLPQuery(req, out rsp))
                        {
                            response.Header.ID   = Guid.NewGuid();
                            response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType;
                            HL7MessageHelper.SetHL7V2PayLoad(response, rsp);
                            return(true);
                        }
                        else
                        {
                            _context.Log.Write(LogType.Error, "Processing requsting HL7 message failed or sending HL7 message to remote HL7 listener failed.");
                            return(false);
                        }
                    }

                    case MessageProcessType.HL7v2XML:
                    {
                        req = request.Body;
                        if (_controler.SendHL7v2XMLQuery(req, out rsp))
                        {
                            response.Header.ID   = Guid.NewGuid();
                            response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType;
                            response.Body        = rsp;
                            return(true);
                        }
                        else
                        {
                            _context.Log.Write(LogType.Error, "Processing requsting XML message (transform XML to/from HL7v2 text) failed or sending HL7 message to remote HL7 listener failed.");
                            return(false);
                        }
                    }

                    default:
                    case MessageProcessType.OtherXML:
                    {
                        if (_controler.SendOtherXMLQuery(request, out response))
                        {
                            response.Header.ID   = Guid.NewGuid();
                            response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType;
                            return(true);
                        }
                        else
                        {
                            _context.Log.Write(LogType.Error, "Processing requsting XML message (transform XML to/from transport schema) failed or sending HL7 message to remote HL7 listener failed.");
                            return(false);
                        }
                    }
                    }

                    ////if (MessageRegistry.HL7V2_QueryRequestMessageType.EqualsTo(request.Header.Type))
                    //if(!_context.Context.ConfigMgr.Config.EnableHL7XMLTransform)
                    //{
                    //    req = HL7MessageHelper.GetHL7V2PayLoad(request);
                    //    if (_controler.SendQuery(req, out rsp))
                    //    {
                    //        response.Header.ID = Guid.NewGuid();
                    //        //response.Header.Type = MessageRegistry.HL7V2_QueryResultMessageType;
                    //        response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType;
                    //        HL7MessageHelper.SetHL7V2PayLoad(response, rsp);
                    //        return true;
                    //    }
                    //    else
                    //    {
                    //        _context.Log.Write(LogType.Error, "Processing requsting HL7 message failed or sending HL7 message to remote HL7 listener failed.");
                    //        return false;
                    //    }
                    //}
                    ////else if (MessageRegistry.HL7V2XML_QueryRequestMessageType.EqualsTo(request.Header.Type))
                    //else
                    //{
                    //    req = request.Body;
                    //    if (_controler.SendXMLQuery(req, out rsp))
                    //    {
                    //        response.Header.ID = Guid.NewGuid();
                    //        //response.Header.Type = MessageRegistry.HL7V2XML_QueryResultMessageType;
                    //        response.Header.Type = MessageRegistry.GENERIC_ResponseMessageType;
                    //        response.Body = rsp;
                    //        return true;
                    //    }
                    //    else
                    //    {
                    //        _context.Log.Write(LogType.Error, "Processing requsting XML message failed or sending HL7 message to remote HL7 listener failed.");
                    //        return false;
                    //    }
                    //}
                    ////else
                    ////{
                    ////    _context.Log.Write(LogType.Error, "Received a unwanted publishing message.");
                    ////    return false;
                    ////}
                }
                else
                {
                    _context.Log.Write(LogType.Error, "Received requsting message failed.");
                    return(false);
                }
            }
            catch (Exception e)
            {
                _context.Log.Write(e);
                return(false);
            }
        }