Разбор HL7 без априорного сообщенияТип знания - PullRequest
4 голосов
/ 20 декабря 2011

В 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 Ответ

8 голосов
/ 20 декабря 2011

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

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

...