1

nHapiの使い方を学んでいます。多くの人が指摘しているように、ドキュメントはあまりありません。このドキュメントに従って、ライブラリを使用してメッセージを解析できました。しかし、オブジェクト モデルを使用してそのメッセージにアクセスする方法がわかりません (これは、nHapi に実際に実行してもらいたいことです)。基本的に、HL7 メッセージを文字列として取得し、オブジェクト モデルを使用してアクセスしたいと考えています。これは、LINQ to SQL がデータベース レコードを取得し、オブジェクトとしてアクセスできるようにするのと同じ方法です。Parsing an HL7 without a アプリオリ messageType knowledgeを見つけましたが、投稿のコードが HL7 オブジェクトの代わりに文字列を返すため (私が必要とするように)、それは別のことのようです。上記でリンクしたドキュメントで「クエリ」を使用してメッセージの一部にアクセスしているようですが、ライブラリで IMessages をクエリするための資料が見つかりません。

これが私が使用しているコードで、何をしたいのかを示す行があります...

NHapi.Base のインポート NHapi.Base.Parser のインポート NHapi.Base.Model のインポート

Module Module1

Sub Main()

    Dim msg As String = "MSH|^~\&|SENDING|SENDER|RECV|INST|20060228155525||QRY^R02^QRY_R02|1|P|2.3|QRD|20060228155525|R|I||||10^RD&Records&0126|38923^^^^^^^^&INST|||"
    Dim myPipeParser As PipeParser = New PipeParser()
    Dim myImsg As IMessage = myPipeParser.Parse(msg)
    Dim msgType As String = myImsg.GetStructureName
    Dim mySendingFacilityName As String = myImsg.getSendingFacility()  //this is what I want

End Sub
4

2 に答える 2

3

HL7メッセージでは、各セグメントが改行で終了する必要があることを忘れないでください。

また、オブジェクトモデルが完全に正しく入力されるように、メッセージを実際のタイプに解析して戻す必要があります(myPipeParser.Parseを使用したときに、NHapi.ModelからQRY_R02メッセージタイプにキャストバックされたことに注意してください。 V23ライブラリ)。したがって、コードは次のようになります。

Imports NHapi.Model.V23.Message
Imports NHapi.Base.Parser
Imports NHapi.Base
Module Module1

Sub Main()
    Dim msg As String = "MSH|^~\&|SENDING|SENDER|RECV|INST|20060228155525||QRY^R02^QRY_R02|1|P|2.3" & vbNewLine & _
    "QRD|20060228155525|R|I||||10^RD&Records&0126|38923^^^^^^^^&INST|||"
    Dim myPipeParser As PipeParser = New PipeParser()
    Dim myImsg As QRY_R02 = myPipeParser.Parse(msg)
    Dim msgType As String = myImsg.GetStructureName
    Dim mySendingFacilityName As String = myImsg.MSH.SendingFacility.NamespaceID.Value
    Console.WriteLine(mySendingFacilityName)
    Console.ReadLine()

End Sub

End Module
于 2012-05-22T13:47:18.173 に答える
0

かなり前のことだと思いますが、最近このリソースを探していたところ、この API の使用方法に関するドキュメントがほとんどないことがわかりました。また、サンプルの優れたソースは、プロジェクト NHapi.NUnit のソース コードのテスト部分にあります。ソースはここにあります

于 2016-05-08T16:47:57.233 に答える