问题标签 [hapi]

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 回答
664 浏览

groovy - 在包装在 Terser 中的新 HL7 消息上设置字段

尝试使用 ca.uhn.hl7v2.util.Terser 在 ca.uhn.hl7v2.model.Message 的给定特定子类上设置空字段时(在本例中为 ca.uhn.hl7v2.model.v251.message.ORU_R01) ,我在 .each{} 关闭期间没有收到任何错误消息,之后消息对象没有填充任何字段。

hl7Map 在类实例化时填充,其值如下: def hl7Map= [ "HL7MessageFields":['PID-3-1':"internal order map key", 'PID-3-4':"internal order map key", ETC。]]

下面的代码:

def buildHL7Message(order){

}

方法结束导致没有输出并且记录有关编码的错误,MSH-1 是必填字段,管道分隔符但为空。如果上面的代码使用 message.initQuickstart("ORU", "R01", "T"),则只会填充默认的 initQuickstart 字段。

如果 hl7Map["HL7MessageFields"] 包含一个不是有效的 Group/Segment 字段的 'it.key',则 terser 会记录一个错误,表明它未能找到该值,上面带有正确格式映射的代码不会导致错误。

谁能帮助解释为什么我没有收到错误但我的消息是空的,并帮助我用适当的 terser.set(params) 填充消息?

0 投票
1 回答
727 浏览

hapi - 在 HAPI 中使用本地自定义解析 HL7 v2.3 REF 消息

我正在尝试使用本地自定义(NZ)解析 HL7 REF I12 消息。

当我尝试使用 GenericParser 时,我不断收到验证异常。例如对于下面的部分,我不断得到输出

ca.uhn.hl7v2.validation.ValidationException:验证失败:原始值“(08)569-7555”需要为空或美国电话号码

我的问题是:

  • 有没有办法通过使用一致性类生成器来避免验证
  • 是否可以使用 CustomModelClasses 创建自己的验证类?

无论哪种情况,是否有任何示例代码或教程示例文档?

0 投票
2 回答
2719 浏览

validation - 如何修改电话号码的 HAPI 验证规则?

在此示例中,使用了来自 maven 中央存储库的以下依赖项:

这是我用 scala 编写的解析代码示例:

此代码可以成功解析以下 HL7 消息。

但是,当消息中提供了带有扩展名的电话号码时,hapi 解析器无法解析该消息。这是我尝试使用电话号码中的扩展名解析的输入消息的示例:

尝试解析此消息失败,并显示以下错误消息:

ca.uhn.hl7v2.validation.ValidationException:验证失败:原始值“(123)456-7890 1”需要为空或PID-13的美国电话号码

我阅读了在http://hl7api.sourceforge.net/index.html上可以找到的所有内容,以查找有关如何修改验证规则的文档,但没有发现任何有用的信息。

一个例子会很受欢迎,但即使指向正确的文档,或者一个简单的工作示例项目就足够了。

如何将 HAPI 解析器使用的验证规则配置为允许电话号码扩展包含在 PID-13 字段中的有效美国电话号码中?

编辑

通过这个 hapi developer mailing list thread进行更多搜索,我想出了如何完全禁用验证。这是一个例子:

但如果可能的话,我想继续验证这些消息。如果我必须禁用验证,我想这将不得不工作,但我更愿意指定验证保持打开状态,但电话号码可以包含扩展名。

0 投票
1 回答
678 浏览

testing - HapiTestPanel,ORU-R01 消息

我正在尝试使用 HapiTestPanel 在 IHE 标准(ORU-R01 消息类型)上创建 HL7 消息,并且在 OBX 字段的开头有一个意外的空字,但我不知道错误在哪里。 .

发送此消息:

1|60|264864^/min^UCUM|||||R OBX|2|NM|150324^MDC_SAT_O2_ART^MDC|1.2.1.1|98|262688^MDC_DIM_PERCENT^MDC|||||R OBX|3|NM |150021^MDC_PRESS_BLD_NONINV_SYS^MDC|1.3.1.1|120|266016^MDC_DIM_MMHG^MDC||||R OBX|4|NM|150022^MDC_PRESS_BLD_NONINV_DIA^MDC|1.6.1.1|80|266016|||MDC_DIM_MMHG^MDC ||R OBX|5|NM|150023^MDC_PRESS_BLD_NONINV_MEAN^MDC|1.6.1.1|100|266016^MDC_DIM_MMHG^MDC|||||R OBX|6|NM|150037^MDC_PRESS_BLD_ART_ABP_SYS^MDC|1.6.1.1|126| 266016^MDC_DIM_MMHG^MDC|||||R OBX|7|NM|150038^MDC_PRESS_BLD_ART_ABP_DIA^MDC|1.6.1.1|76|266016^MDC_DIM_MMHG^MDC|||||R OBX|8|NM^|150039^MDC_PRESS_BLD_ART_ABP_MEAN MDC|1.6.1.1|92|266016^MDC_DIM_MMHG^MDC|||||R OBX|9|NM|151728^MDC_AWAY_CO2_ET^MDC|1.6.1.1|60|266016^MDC_DIM_MMHG^MDC|||||R OBX| 10|NM|151562^MDC_RESP_RATE^MDC|1.6.1.1|60|264928^MDC_DIM_RESP_PER_MIN^MDC|||||R||||||||| OBX|11|NM|150364^MDC_TEMP_BODY^MDC|1.0。

我在受体中得到了这个:

MSH|^~\&|LiFETouch17|LiFETouch17Facility|AnesthesiaApp|AnesthesiaAppFacility|20141112144500||ORU^R01^ORU_R01|Q123456789T123456789X123456|P|2.6||||||||IHE PCD ORU-R01

PID|||123456789|012345678 9^AA^^JP|BROS^MARIO||19850101000000|M|||123 FAKE STREET^MARIO LUIGI BROS PLACE^TOADSTOOL KINGDOM^NES^A1B2C3^JP^HOME^^1234|1234

PV1||O|ABCD^EFGH||||123456^DINO^YOSHI^^^^^^MSRM^CURRENT^^^NEIGHBOURHOOD DR NBR|^DOG^DUCKH UNT^^^^^^^CURRENT|||| |||||123456^DINO^YOSHI^^^^^MSRM^CURRENT^^^NEIGHBOURHOOD DR NBR||0123456789||||||||||||||||||||| |||20010101000000

OBR|1|080019FFFF4F6AFE20081211144657^AwareGateway^080019FFFF4F6AC0^EUI-64|080019FFFF4F6AC020081211144657^AwareGateway^080019FFFF4F6AC0^EUI-64|126.169.95.2^2000^MDC|||20081211144500

无效的1|60|264928^MDC_DIM_RESP_PER_MIN^MDC|||||R||||||||| OBX|11|NM|150364^MDC_TEMP_BODY^MDC|1.0.0.9|37|268192^MDC_DIM_DEGC^MDC|||||ROBX|12|NM|150364^MDC_EEG_BISPECTRAL_INDEX^MDC|1.0.0.9|37|262656^MDC_DIM_DIMLESS^ MDC|||||R

公共无效 onCreate() {
super.onCreate();
serverThread = new Thread(new Runnable() { public void run() { try{ Looper.prepare(); socket = new ServerSocket(8080); socket.setReuseAddress(true); socket.setPerformancePreferences(100, 100, 1);

/这里我得到了 16 行的消息/ /每行都以 \n 结尾,以区分受体中的片段/

/我用整个消息调用解析器/

/这里我解析消息,首先我用 \n 分隔每一行,我有:MSH、PID、PV1、OBR 和 OBX(从 1 到 13) /

公共无效 hl7Parser(字符串 hl7Message){

/这里我得到了第一个段的索引,以便能够在段内搜索所需的字段/

/这些是所需的字段/

/我在 OBX 字段得到 nullOBX... 而不是 OBX.. 之前得到了错误。/

0 投票
1 回答
539 浏览

apache-camel - Hapi API:如何修改消息 ACK ID 行为

我正在使用以下代码生成消息 ACK:

这会生成以下警告:

我显然可以设置权限来删除警告,但是我想知道如何告诉 Hapi 使用内部 ID 生成器或可能是 ID 存储在数据库中的生成器?

0 投票
1 回答
757 浏览

java - 如何通过 Hapi 获取 HL7 v2x msg 的段、组和重复次数列表

关于下面的消息,我将分别获取段列表、组列表以及重复次数、组内的段和子组列表。虽然我想将 Hapi-2.1 与 Apache Camel 一起使用。

0 投票
2 回答
1623 浏览

java - 读取 HL7 消息,无需指定消息类型或事件类型或版本

我需要将 HL7、管道分隔的消息读入表示消息结构的自定义 Java 结构中。我需要在不使用任何消息类型、事件类型或版本特定方法或类的情况下完成所有这些,因为无论读取哪种 HL7 消息,我都需要此代码工作。我不想为每种不同的消息和事件类型编写一个阅读器。我需要获取所有细分和子字段。我已经查看了很多 HAPI 以查看它是否有针对此问题的预构建解决方案,但我什么也没找到。

是否有扩展 HAPI 类或迭代 HAPI 从解析器创建的底层消息结构来解决这个问题?

此外,任何关于 HAPI 的好资源都将不胜感激。

0 投票
1 回答
4279 浏览

hl7 - HAPI:Hl7 Parser 不分隔 Hl7 消息的段

我正在使用 HAPI API 开始使用 Hl7。我有一条 Hl7 测试消息(取自真实案例),我想读取各个段的字段(MSH、PID、PV1 等)。问题是解析器不会将消息分割成段,而是将所有消息放在 MSH 段中。我尝试了 PipeParser 和 GenericParser。该消息是一条 ORU_R01 消息,版本 2.3.1(我使用调试和 getVersion() 方法来获取这些信息)

这是测试类

这是控制台输出:

整个消息和我获得的 MSH 段是一样的,我不能将消息分段(应该是:MSH、PID、PV1、OBR、OBX、TXA 和 NTE)有人知道我的问题的解决方案吗?

0 投票
1 回答
320 浏览

hl7 - 从 HL7 2.31 到 HL7 2.5 的 Hapi 转换

Hapi 包含一个解析器函数,可以将特定的 HL7 版本解析为备用版本:

在版本 2.31 中,主治医生在 PV1.7-9 中发送消息。在 2.5 中有一个 ROL 段来保存这些信息。我的问题是 Hapi 解析器似乎没有将 PV1.7.9 解析为 ROL。我不认为这是正确的行为?任何支持指导表示赞赏?

0 投票
1 回答
215 浏览

apache-camel - LAB TF中的LAB-n是什么意思

目前我们正在研究实验室领域。
实验室域包含许多配置文件,每个配置文件都包含许多参与者。
其中 LAB TF多次 提到LAB -n。

例如:

  1. 实验室-1~5 (5)
  2. 实验室-21~23 (3)
  3. 实验室-26~31 (6)
  4. 实验室-51 (1)
  5. LAB-61~62 (2)

它们实际上是什么?
机器、设备、演员或其他什么?
它们有什么用?