2011-12-19 7 views
4

NHapiでは、メッセージタイプ(MSH#9)がわからないと、どのようにメッセージを解析できますか?先験的なメッセージタイプの知識を持たないHL7の解析

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

IMessage parsedMessage = parser.Parse(SampleMessage); 

parsedMessageは、実行時にNHapi.Base.Model.GenericMessage.V25と私は再度解析(?)そのメッセージの種類としてメッセージのMessageTypeフィールドを読み取るとするMSHヘッダーに読み取るように見えることはできません。

私はドキュメントや例が不足しています。おそらく、私は非常に遠いです。私はHL7の新機能ですが、NHapiを試してみるまでHL7仕様をよく理解していると思いました。

答えて

8

parsedMessage.GetStructureName()メッセージタイプとトリガーイベントが表示されます。​​はパイプで区切った形式でメッセージを返します。

次のコードは、メッセージタイプを取得する方法と、元のメッセージをパイプ形式で取得する方法を示しています。

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には、いくつかの良いスタートコードがあります。

+0

こんにちはマイク。応答していただきありがとうございます。 'parser.Parse(SampleMessage).GetStructureName();を使うと、SampleMessageの内容に基づいてORMO01に関連するものがあると思っていても、" GenericMessage + V25 " –

+1

サンプルの身元確認されていないメッセージ(実際の患者データのないメッセージなど)を提供できますか?受信メッセージに解析エラーがあり、正しく受信されない可能性があります。 また、プロジェクトでNHapi.Model.V25アセンブリが参照されていますか? V25アセンブリへの参照を削除すると、同じメッセージタイプが表示されることに気付きました。 –

+0

こんにちはマイク - それは欠けていた参照でした。私はモデルの仕組みを理解していませんでした - 2.51ではなく2.5でした。彼らは後方互換性があると思った。追加のモデルDLLを追加すると動作します。ありがとう。 –

関連する問題