首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问使用nHapi解析的hl7消息中的信息

如何访问使用nHapi解析的hl7消息中的信息
EN

Stack Overflow用户
提问于 2012-05-21 23:08:05
回答 2查看 2.4K关注 0票数 1

我正在学习如何使用nHapi。正如许多人指出的那样,没有太多的文档。遵循this文档,我已经能够使用该库解析消息。但是我不知道如何使用对象模型来访问该消息(这正是我真正希望nHapi做的事情)。本质上,我希望将HL7消息作为字符串,并使用对象模型访问它,这与LINQ to SQL获取数据库记录并允许您将其作为对象进行访问的方式相同。我发现了Parsing an HL7 without a priori messageType knowledge,但它似乎与其他东西有关,因为post中的代码返回一个字符串,而不是HL7对象(正如我所需要的)。在documentation I linked to above中,它们似乎使用“查询”来访问消息的各个部分--但是我在库中找不到要查询IMessages的材料。

以下是我正在使用的代码,其中一行显示了我想要做的事情……

导入NHapi.Base导入NHapi.Base.Parser导入NHapi.Base.Model

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

发布于 2012-05-22 21:47:18

请记住,对于HL7消息,每个段都必须以行回车符结束。

此外,您还需要将消息解析回其实际类型,以便完全正确地填充对象模型(请注意,当我使用myPipeParser.Parse时,它被转换回NHapi.Model.V23库中的QRY_R02消息类型)。因此,代码应该如下所示:

代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2016-05-09 00:47:57

我知道这是很久以前的事了,但是我最近在寻找这个资源,发现几乎没有关于如何使用这个API的文档。在NHapi.NUnit项目的源代码测试部分中可以找到优秀的示例源代码。来源可以在here上找到

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10687837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档