问题标签 [nhapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
280 浏览

c# - NHapi:为 QBP^Q21 消息创建 MSH 段时出现 System.TypeInitializationException

我是 HL7 的新手,在实现一些功能时遇到了麻烦。

我想要达到的目标:

  • 我想创建一个带有 MSH、QPD、RCP 段的QBP^Q21消息,其中 QPD 保存查询参数,如患者 ID、姓氏、名字等。
  • 然后我想发送这个创建的消息以从 HIS(可能是医院的数据库)中获取患者的详细信息。
  • 现在,我正在使用 Postgresql 中的一些表在医院模拟一个虚拟数据库,并使用 HL7 Soup 接收我创建的 QBP^Q21 消息并查询 psql 数据库并返回响应。

代码如下所示:

(请注意:此代码段仅包括查询消息的创建。我没有包含使用 MLLP 发送创建的消息的代码。)

我在调试时收到的错误:

我正在使用 MS Visual Studio 2019 社区版进行编码和调试。

在函数private void CreateMshSegment(string currentDateTimeString)中,在行之后var mshSegment = _qbpMessage.MSH;我放了一个断点来检查 MSH 段的样子。

然后我在扩展mshSegment.

在此处输入图像描述

完成执行后,我收到如下错误:

我在 HL7 汤中看到了什么:

我收到如下消息:

在此处输入图像描述

我很好奇MSH之前的VT是什么!

并且,响应显示为:

在此处输入图像描述

如果我的问题太愚蠢,请原谅我,我被卡住了,希望能提供任何可能导致此错误的指示。

0 投票
2 回答
272 浏览

c# - 解析后在 HL7 中保留可选管道

原装 HL7

最终结果 HL7

你好,

我正在 C# 中制作一个 DLL,用于使用 nhapi Hl7 DLL 解析和修改 HL7 消息。我唯一在努力的是将空管保持在 PV1 段的末端。它正在删除“最终结果 HL7”与“原始 HL7”中的管道。

我想保留那些管道

这是我的实际代码

非常感谢 !!!!

0 投票
1 回答
242 浏览

hl7 - nHapi 向 REFI12 消息添加非标准段

我正在使用 nHapi 在 HL7 V2.3 和 V2.4 中创建和读取 HL7 REF_I12 消息。

标准的 nHapi REF_I12 消息缺少我需要的几个片段 - PRD、OBR、PV1、PV2、ORC 和 OBX。

如何将这些段添加到标准 nHapi REF_I12 消息?

我应该尝试将它们添加为自定义 Z 段吗?

0 投票
1 回答
425 浏览

c# - PipeParser 无法解析 HL7 消息

我正在通过 TCP 套接字侦听传入的 HL7 消息。出于调试目的,我使用工具7Edit将 HL7 消息发送到我的应用程序。

所以我要发送的是这个示例消息

我的TcpListener实例使用此代码侦听传入消息

不幸的是,HL7 解析器抛出以下异常

无法解析以 MSH|^~&|KISsystem|ZTM|NIDAklinikserver|HL7Connec 开头的消息

在此处输入图像描述

当向应用程序发送消息时,消息似乎被正确提取,因此messageText保存消息字符串也是如此。

我从Visual Studio的Locals选项卡中获取了值:

"\vMSH|^~\\&|KISsystem|ZTM|NIDAklinikserver|HL7Connector|201902271130||ADT^A01|68371142|P|2.3\rEVN|A01|201902271130|201902271130\rPID|1||677789||Aubertin�^Letizia||19740731|F||\rPV1|1|O|||||||||||||||||456456456\rIN1|1||999567890|gematik Musterkasse1GKV||||||||||||Prof. Dr.Aubertin�^Letizia||19740731|||||||||||201902271101|||||||X110173919\u001c\r"

检查时你可以看到这个

在此处输入图像描述

如您所见,该字符串中有一些无效字符。在检查窗口中,您可以在开头看到一个无效字符。并且字符串本身包含一些转义字符。我认为这就是pipeParser.Parse(messageText)引发异常的原因。

有人知道这里出了什么问题/如何解决吗?

提前致谢

0 投票
1 回答
1669 浏览

c# - 如何正确解析 HL7 消息字符串?

我正在使用 NHAPI 包将传入的消息字符串解析为IMessage使用PipeParser.

根据HL7 最低层协议 (MLP)0x0b定义,HL7 消息在开始和0x1c, 0x0d结束时总是由一些字符包裹。出于测试目的,我使用工具 7Edit 将此消息发送到我的应用程序。

调试的消息字符串是

在这里,您可以看到包裹消息的字符。如果您将此消息字符串传递给该PipeParser.Parse()方法,它将与消息一起引发异常

无法解析以 MSH 开头的消息|^~&|KISsystem|ZTM|NIDAklinikserver|HL7Proxy|

我想我必须先删除所有这些字符。有什么东西可以使用还是我必须将所有这些分隔符存储到一个字节数组中,将此字节数组转换为字符串并从消息字符串中删除这些分隔符字符串?

0 投票
1 回答
1007 浏览

c# - 如何发送 HL7 ACK 消息作为 TCP 响应?

我通过 TCP 连接接收 HL7 消息。这些消息将始终为 ADT 类型。我正在使用 Kestrel 来监听这些消息,并使用 NHAPI 包来处理它们。我使用David Fowler 的 Kestrel 示例代码来设置 TCP 侦听器。所以基于这个示例代码

我正在使用工具 7Edit 将 HL7 消息发送到我的应用程序。存储库中的回声示例(上面的链接)工作正常。echo 示例代码生成这样的日志

在此处输入图像描述

但是当使用我的代码时,我得到了这个错误

在此处输入图像描述

所以我认为我没有正确转换 ACK 消息。任何想法如何解决这一问题?

0 投票
2 回答
48 浏览

.net-core - NHapi PipeParser 在 Azure 函数中引发异常

我有一个使用最新版本的 NHApi (3.0.4) 的 .net core 3.1 Azure Function。以下代码行在本地运行时会引发异常:

例外情况如下:

'NHapi.Base.PackageManager' 的类型初始化程序引发了异常。NHapi.Base:“NHapi.Base.PackageManager”的类型初始化程序引发了异常。NHapi.Base:无法加载文件或程序集“System.Configuration.ConfigurationManager,版本=5.0.0.0,文化=中性,PublicKeyToken=cc7b13ffcd2ddd51”。该系统找不到指定的文件。

查看 bin\Debug\netcoreapp3.1 中的构建文件夹,我可以看到 System.Configuration.ConfigurationManager.dll。但是我需要将此文件复制到 bin\Debug\netcoreapp3.1\bin 以使错误消失。默认情况下,该程序集似乎不会被复制到 \bin 子文件夹(其中包含所有其他引用的程序集)。有人知道为什么会这样吗?缺少添加一些后期构建步骤来执行此文件复制,解决方案是什么?