/// <summary> /// Handles an update. /// </summary> /// <param name="message">The ADT_A08 message.</param> /// <param name="eventArgs">The <see cref="Hl7MessageReceivedEventArgs" /> instance containing the event data.</param> /// <returns>Returns the response message from the merge event.</returns> internal IMessage HandlePixUpdate(NHapi.Model.V231.Message.ADT_A08 message, Hl7MessageReceivedEventArgs eventArgs) { var parser = new PipeParser(); message.MSH.MessageType.MessageStructure.Value = "ADT_A01"; var encodedMessage = parser.Parse(parser.Encode(message)); if (encodedMessage is NHapi.Model.V231.Message.ADT_A01) { return(this.HandlePixUpdate(encodedMessage as NHapi.Model.V231.Message.ADT_A01, eventArgs)); } return(MessageUtil.CreateNack(eventArgs.Message, "AR", "200", ApplicationContext.Current.GetLocaleString("MSGE074"))); }
/// <summary> /// Handle PIX Update /// </summary> private IMessage HandlePixUpdate(NHapi.Model.V231.Message.ADT_A08 aDT_A08, Hl7MessageReceivedEventArgs e) { ILocalizationService locale = this.Context.GetService(typeof(ILocalizationService)) as ILocalizationService; ISystemConfigurationService config = this.Context.GetService(typeof(ISystemConfigurationService)) as ISystemConfigurationService; PipeParser parser = new PipeParser(); aDT_A08.MSH.MessageType.MessageStructure.Value = "ADT_A01"; var message = parser.Parse(parser.Encode(aDT_A08)); if (message is NHapi.Model.V231.Message.ADT_A01) { return(this.HandlePixUpdate(message as NHapi.Model.V231.Message.ADT_A01, e)); } else { return(MessageUtil.CreateNack(e.Message, "AR", "200", locale.GetString("MSGE074"), config)); } }