Разбор 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;
}
Некоторый хороший стартовый код можно найти на сайте примеров хапи.