如何使用 Java Hapi 向 HL7 消息添加额外的组件?

How to add extra components to HL7 message using Java Hapi?

我正在构建 MIRTH 的替代品,看起来我们正在发送非标准的 HL7 ORU_R01 消息。 OBR.5 应该只是一个字段,但看起来我们在本节中发送了一堆其他数据。

<OBR.5>
   <OBR.5.1>XXXX</OBR.5.1>
   <OBR.5.2>XXXX</OBR.5.2>
   <OBR.5.3>XXXXX</OBR.5.3>
   <OBR.5.5>XXXXX</OBR.5.5>
   <OBR.5.6>XXXX</OBR.5.6>
   <OBR.5.7/>
   <OBR.5.8>XXXXXXXXXX</OBR.5.8>
   <OBR.5.10>XXXXXXX</OBR.5.10>
   <OBR.5.11>X</OBR.5.11>
   <OBR.5.12>X</OBR.5.12>
   <OBR.5.13>XXXXX</OBR.5.13>
   <OBR.5.15>XXXXXXX</OBR.5.15>
 </OBR.5>

看来我应该可以做到以下几点。

 obr.getObr5_Priority().getExtraComponents().getComponent(2).setData(...)

但我在尝试找到设置不同细分的正确方法时遇到了问题。所有字段都是字符串。

找到了我认为最终对我们有用的东西。

ID expirationDate = new ID(obr.getMessage(), 502);                                     
expirationDate.setValue(format2.format(date));
obr.getObr5_Priority().getExtraComponents().getComponent(0).setData(expirationDate);

其中503指的是你要设置的元素。在这种情况下,我尝试设置 OBR-5.2。 getComponent(0) 因为它是我为这个特定部分添加的第一个额外组件。我不太确定我在这里的解释是否正确,但它会创建一条我们需要的消息并按照我的预期进行解析,所以这是我最好的猜测。

从这个旧电子邮件线程中得到答案 https://sourceforge.net/p/hl7api/mailman/hl7api-devel/thread/0C32A03544668145A925DD2C339F2BED017924D8%40FFX-INF-EX-V1.cgifederal.com/#msg19632481