簡體   English   中英

如何訪問使用nHapi解析的hl7消息中的信息

[英]How do i access the information in an hl7 message parsed with nHapi

我正在學習如何使用nHapi。 正如許多人所指出的那樣,沒有太多文件。 按照這個文檔,我已經能夠使用庫解析一條消息。 但我無法弄清楚如何使用對象模型訪問該消息(這是我真正想要的nHapi)。 本質上,我想將HL7消息作為字符串並使用對象模型訪問它,就像LINQ to SQL獲取數據庫記錄並允許您作為對象訪問它一樣。 我發現沒有先驗的messageType知識解析HL7 ,但它似乎是關於別的東西,因為帖子中的代碼返回一個字符串而不是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

請記住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

我知道這是很久以前的事了,不過我最近一直在尋找這個資源,並且發現幾乎沒有關於如何使用這個API的文檔。 在項目NHapi.NUnit的源代碼的測試部分中可以找到優秀的示例源。 來源可以在這里找到

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM