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

时间:2011-12-19 20:46:37

标签: c# hl7 nhapi

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

var parser = new NHapi.Base.Parser.PipeParser();

IMessage parsedMessage = parser.Parse(SampleMessage);

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

我对缺乏文档和示例感到沮丧。也许我离基地很远。我是HL7的新手,但在我尝试使用NHapi之前,我认为我对HL7规范的理解很好。

1 个答案:

答案 0 :(得分:8)

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 examples site找到一些好的入门代码。