在没有先验messageType知识的情况下解析HL7

本文关键字:情况下 HL7 知识 messageType | 更新日期: 2023-09-27 18:18:32

在NHapi中,如果我们不知道messageType (msh# 9)是什么,我们如何解析消息?

var parser = new NHapi.Base.Parser.PipeParser();
IMessage parsedMessage = parser.Parse(SampleMessage);

parsedMessage在运行时是NHapi.Base.Model.GenericMessage.V25,我似乎无法在MSH头中读取MessageType字段,然后重新解析(?)消息作为该消息类型。

我对缺乏文档和示例感到沮丧。也许我大错特错了。我对HL7非常陌生,但我认为我很好地理解了HL7规范,直到我尝试使用NHapi。

在没有先验messageType知识的情况下解析HL7

parsedMessage.GetStructureName()将给出消息类型和触发事件。parser.Encode(parsedMessage)将以管道分隔的格式返回消息。

下面的代码展示了如何获取消息类型以及如何获取管道格式的原始消息。

public static String ParseMessage(String message)
{
    var parser = new NHapi.Base.Parser.PipeParser();
    var parsedMessage = parser.Parse(message);
    //Get the message type and trigger event
    var msgType = parsedMessage.GetStructureName();
    //Get the message in raw, pipe-delimited format
    var pipeDelimitedMessage = parser.Encode(parsedMessage);
    return pipeDelimitedMessage;
}

可以在hapi示例站点找到一些很好的入门代码。