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."); } }
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."; }
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); } }
public void SetMessage(IMessage msg) { message = (ACK)HL7MessageHelper.MakeACK(msg, "AA", "Error"); }
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); } }