Разбор HL7 без априорного сообщенияТип знания

В 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.

1 ответ

Решение

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;
}

Некоторый хороший стартовый код можно найти на сайте примеров хапи.

Другие вопросы по тегам